ディレクトリの削除方法

Linuxでディレクトリを削除する方法です。

「rm -r」でディレクトリが削除できます

「rm」コマンドだけでディレクトリ削除しようとすると、下記のようにディレクトリなので削除できませんと怒られます。

$ ls -l
合計 0
drwxrwxr-x 2 tamohiko tamohiko 6  4月  9 13:04 testdir
$ rm testdir/
rm: `testdir/' を削除できません: ディレクトリです

ではどのようにディレクトリを削除するかというと、「-r」オプションを使用することでディレクトリを削除することが出来ます。

rm -r ディレクトリ

削除例

「testdir」というディレクトリを実際に削除してみます。

$ rm -r testdir/
$ ls testdir
ls: testdir にアクセスできません: そのようなファイルやディレクトリはありません

このように、無事削除することが出来ました。

ちなみに下記のオプションでも削除することができます。

rm -R ディレクトリ
rm --recursive ディレクトリ

ディレクトリの中身が空っぽならば「rm -d」でも削除できます

ディレクトリの中が空っぽの場合は「-d」オプションでも削除することが出来ますが、ディレクトリの中にファイル等がある場合は下記のように削除することが出来ません。

rm -d ディレクトリ

ディレクトリの中が空じゃなかった場合は下記のように削除することができません。

$ ls -l testdir/
合計 0
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test01
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test02
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test03
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test04
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test05
$ rm -d testdir/
rm: `testdir/' を削除できません: ディレクトリは空ではありません

削除の確認を求められ無いようにしたい場合

「root」ユーザでファイルやディレクトリ等を削除する場合、ファイルやディレクトリ毎に削除するかどうか確認されて「y」を入力するのが面倒な場合があります。

# rm -r testdir/
rm: ディレクトリ `testdir/' 配下に入りますか? y
rm: 通常の空ファイル `testdir/test01' を削除しますか? y
rm: 通常の空ファイル `testdir/test02' を削除しますか? y
rm: 通常の空ファイル `testdir/test03' を削除しますか? y
rm: 通常の空ファイル `testdir/test04' を削除しますか? y
rm: 通常の空ファイル `testdir/test05' を削除しますか? y
rm: ディレクトリ `testdir/' を削除しますか? y

この場合「f」オプションを一緒に指定することで、問答無用で削除することが可能になります。

# ls -l testdir/
合計 0
-rw-r--r-- 1 root root 0  4月  9 13:25 test01
-rw-r--r-- 1 root root 0  4月  9 13:25 test02
-rw-r--r-- 1 root root 0  4月  9 13:25 test03
-rw-r--r-- 1 root root 0  4月  9 13:25 test04
-rw-r--r-- 1 root root 0  4月  9 13:25 test05
# rm -rf testdir/

ただし、「f」オプションを使用する際には削除対象が本当に間違いが無いか、十分に確認をして作業を行うようにしてください。

「root」ユーザで作業している場合、システムで必要なデータであろうが消し去られてしまいますので…

ディレクトリの中身が空ならば「rmdir」でも削除できます

ディレクトリの中身が空っぽならば「rmdir」コマンドでもディレクトリを削除することが出来ます。

$ rmdir ディレクトリ

削除例

実際に「testdir」というディレクトリを削除してみます。

$ rmdir testdir/
$ ls testdir
ls: testdir にアクセスできません: そのようなファイルやディレクトリはありません

無事削除することができました。

ディレクトリの中が空じゃない場合

ディレクトリの中が空っぽじゃない場合は、下記のようにディレクトリを削除することが出来ません。

「testdir」ディレクトリのなかにファイルを作成してから「rmdir」で削除してみます。

$ ls -l testdir/
合計 0
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test01
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test02
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test03
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test04
-rw-rw-r-- 1 tamohiko tamohiko 0  4月  9 14:58 test05
$ rmdir testdir/
rmdir: `testdir/' を削除できません: ディレクトリは空ではありません

ディレクトリが空ではありませんと言われて削除することが出来ませんでした。

シェアする