ディレクトリ削除などのLinuxコマンドの使い方
はじめに
ディレクトリ操作に関するLinuxコマンドは、多数用意されています。本記事では、ディレクトリ削除についてのLinuxコマンドを中心に紹介していますが、後半でその他のディレクトリ操作に関するLinuxコマンドも紹介しています。
ディレクトリ削除を行うLinuxコマンド
ディレクトリ削除についてのLinuxコマンドは、rmdir と rm が用意されています。
1. rmdir(remove directory)
rmdirコマンドの基本的な書式は以下のとおりです。
$ rmdir ディレクトリ名
つまり、sample1についてのディレクトリ削除は次のコマンドを実行します。
$ rmdir sample1
このコマンドはディレクトリ削除を行うものであり、ディレクトリ内のファイルもすべて削除するわけではありません。つまり、ディレクトリ内が空でない場合は、以下に示すエラーメッセージが表示されます。
rmdir : ‘sample1’ を削除できません:ディレクトリは空ではありません
rmdirコマンドには、このエラーを表示しないようにする、以下のオプションが用意されています。ただし、エラーを表示されないようにするだけであり、削除は行われません。内部のファイルも含めてディレクトリ削除を行う場合は、後述するrmコマンドを利用します。
$ rmdir --ignore-fail-on-non-empty sample1
上記の他にも、rmdirコマンドには以下に示すオプションが用意されています。
-p(--parents)
これは階層化したディレクトリをまとめて削除するときに便利なオプションです。例えば、「sample1/sample2/sample3」というディレクトリ構成となっている場合は以下に示すコマンドを実行します。
$ rmdir -p sample1/sample2/sample3
これにより、sample1からsample3まで削除されます。オプション -p を付加しない場合はsample3のみ削除されます。
-v(--verbose)
オプション -v を使用すると、ディレクトリ削除の結果のメッセージを表示することができます。これはオプション -p と組み合わせて使用できます。
$ rmdir -pv sample1/sample2/sample3
上記のコマンドを実行すると、次のようなメッセージが順番に表示されます。
- rmdir: ディレクトリ ’sample1/sample2/sample3’ を削除しています
- rmdir: ディレクトリ ’sample1/sample2’ を削除しています
- rmdir: ディレクトリ ’sample1’ を削除しています
2. rm(remove)
rmコマンドは、ディレクトリとファイルの削除を行います。rmコマンドを用いたディレクトリ削除には、オプション -r, -R (--recursive)と組み合わせて実行する必要があります。前述と同様にディレクトリの構成が「sample1/sample2/sample3」の場合を想定します。
$ rm -r sample1
上記のコマンドを実行すると、ディレクトリだけでなくsample1に含まれるファイル等もすべて削除されます。そのため、このコマンドの実行は慎重に行う必要があります。
rmコマンドには、rmdirコマンドと同様にオプション -v も用意されており、ファイルやディレクトリ削除の結果のメッセージを表示することができます。その他には、以下のオプションが利用できます。
-f(--force)
オプション -f を使用すると、警告メッセージが表示されなくなります。存在しないディレクトリを指定しても、警告メッセージは表示されません。また、オプション -f は、以下のようにオプション -v や -r と組み合わせて使用できます。
$ rm -rfv sample1
-i(--interactive)
前述したようにrmコマンドは、まとめて削除ができるため慎重に実行する必要がありますが、ファイルやディレクトリ削除を実行していいかを問い合わせるオプション -i が用意されています。
-I(--Interactive)
削除対象が4つ以上の場合のみ削除の確認をするオプションです。大量のファイルの削除を行う場合は、削除ミスの回避ができるだけなく、オプション -i よりも効率的に作業を行うことができます。
その他のディレクトリに関するLinuxコマンド
ここでは、Linuxのディレクトリ削除以外のディレクトリ操作に関するLinuxコマンドを簡単に紹介します。
mkdir(make directory)
mkdirコマンドは、ディレクトリの作成を行います。rmdirと同様にオプション -v や -p が用意されているため、以下のコマンドを実行すると、「sample1/sample2/sample3」がまとめて作成され、その結果も表示されます。
$ mkdir -vp sample1/sample2/sample3
pwd(print working directory)
pwdコマンドは、カレントディレクトリを表示することができます。以下のように、入力して実行するだけで現在、作業中のディレクトリが表示されます。
$ pwd
また、シンボリックリンクに関わるオプション -L および -R が用意されています。
ls(list segments)
ls コマンドは、カレントディレクトリのファイルやディレクトリを一覧表示することができます。また、多くのオプションが用意されており、その例を以下に示します。
- $ ls -l:ファイルの詳細を表示する
- $ ls -F:識別子付きで表示する
- $ ls -d:ディレクトリの情報を表示する
- $ ls -t:更新時間順で表示する
- $ ls -s:ファイルサイズ順に表示する
上記の他にも多数のオプションが用意されているため、様々な一覧表示が可能です。
cd(change directory)
cdコマンドは、カレントディレクトリを移動することができ、下記のような移動も可能です。
- 「$ cd 」または「 $ cd ~ 」によるホームディレクトリへの移動
- 相対パスや絶対パスでの移動
- 「$ cd ..」による上の階層への移動
また、移動先がシンボリックリンクに移動するオプション -L や、移動先がシンボリックリンクのターゲットに移動するオプション -R が用意されています。
pushd(push directory)
pushd コマンドは、ディレクトリスタックへディレクトリを保存しつつ、カレントディレクトリを変更することができます。このコマンドには、スタックのみの操作を行うオプション -n と、ディレクトリスタック内の指定した場所を先頭に来るように順番を変更して、先頭になった場所をカレントディレクトリにするオプション ±数値 があります。
ちなみに、ディレクトリスタックの内容の表示と削除には、dirs コマンドがあります。
popd(pop directory)
popd コマンドは、ディレクトリスタックへ最後に保存した場所にカレントディレクトリを変更し、ディレクトリスタックから保存を削除できます。このコマンドには、ディレクトリスタック内の削除だけを行うオプション -n と、ディレクトリスタック内に記録される指定した場所を削除し、そこへ移動するオプション ±数値 があります。
まとめ
本記事では、ディレクトリ削除に関するLinuxコマンドについて紹介し、その後、それ以外のディレクトリ操作に関するLinuxコマンドを紹介しました。一度にすべてを覚えるのは大変ですので、備忘録として活用していただけると幸いです。