ディレクトリの作成・削除


■mkdirコマンド

 空のディレクトリを作成するには、mkdirコマンドを実行する。以下にmkdirコマンドの実行の具体例を示す。

コマンド実行 実行内容の説明
mkdir apps  カレントディレクトリ内に空のappsディレクトリが作成される。
mkdir ~/apps/calc

~/apps以下に空のcalcディレクトリが作成される。

※チルダ(~)は、/home/ユーザー名/の簡略表示。

 

■rmコマンド

 ファイルやディレクトリを削除するには、rmコマンドを実行する。以下にrmコマンドの実行の具体例を示す。

コマンド実行 実行内容の説明
rm ~/document/file001.txt

~/document以下のfile001.txtファイルを削除する。

※なお、この方法で空のディレクトリも削除できる。空でない場合は削除できない。

rm -r ~/document

空でないディレクトリ(ここでは、~/document)を削除する場合には、-rオプションを付して実行する。

-rオプションにより、削除対象ディレクトリの下層にあるディレクトリやファイルを再帰的に削除します。

※ただし、実行後、ディレクトリの中身を削除していいか逐一警告メッセージが出ます。

 

rm -rf ~/document

基本はrm -r ~/documentの実行結果と同じです。

ただし、-fオプションも付すことで、逐一発生していた警告メッセージが発生せず、即座に削除できます。

 

■rmdirコマンド

 rmdirコマンドでもディレクトリの削除は可能ですが、空のディレクトリに限られる。したがって、中身を全て削除した後に利用することになる。中身のあるディレクトリを一度に削除するのであれば、rm -rf ディレクトリ名が楽でしょう。

 

■ワイルドカード(*)の利用

 カレントディレクトリに以下のような名前の6つのファイルがある場合に、名前にAの記号を含むファイルのみを一括して選択・削除したいことがある。

 

file_A_001.txt

file_A_002.txt

file_A_003.txt

file_B_001.txt

file_B_002.txt

file_C_001.txt

 

 この場合、ワイルドカードと呼ばれる*の記号を利用する。*は任意の文字列を意味するので、ファイル名の選択抽出に利用できます。例えば、以下のようにすれば狙い通りファイル名にAを含むファイルのみ一括削除できます。

rm -f *A*

 

 -fオプションは、逐一、削除していいかの警告メッセージに回答するのが面倒なので付しています。

 *A*は、Aの前後に任意に文字列があるファイル名を意味します。その条件に当てはまるファイル名は、以下の三つだけです。

 

file_A_001.txt

file_A_002.txt

file_A_003.txt

 

 つまり、上記のAを含む3つのファイルが一度に削除されることになります。

 削除後にlsコマンドでディレクトリの中身を確認すれば、以下のような表示になります。

 

file_B_001.txt

file_B_002.txt

file_C_001.txt

 

 なお、ディレクトリ内のファイルをすべて一度に削除したければ、以下のようになります。

rm -f *

 

最後に以下に整理しておきます。

コマンド実行 実行内容の説明
rm -f *A*

カレントディレクトリ内のAを名前に含むファイルを一括削除する。-fオプションを付すため警告なし。

※ディレクトリの場合には、-rオプションを付さないと削除できないと思います。

rm -f * カレントディレクトリ内のすべてのファイルを一括削除する。-fオプションを付すため警告なし。
rm -rf * カレントディレクトリ内のすべてのファイルとディレクトリを一括削除する。