rmdir 空のディレクトリを削除する
rmdir [オプション] ディレクトリ...試してみる
rmdir tmp/empty1空のディレクトリを削除します。
rmdir tmp/full || echo "中身があるので削除できません"中身があるディレクトリは削除できません。ここでは || echo で、失敗したときの表示を出しています。
rmdir -p a/b/c-p を付けると、c を消したあと、空になった b と a も順に消します。
rm tmp/full/file.txt先にディレクトリの中身を消します。
rmdir -v tmp/full空になったので削除できます。-v で削除したことが表示されます。
ls tmptmp の中が空になったことを確認します。
主なオプション
-p | 指定したディレクトリを消したあと、空になった親ディレクトリも順に消す |
|---|---|
-v | 処理したディレクトリを表示する |
--ignore-fail-on-non-empty | ディレクトリが空でないことによる失敗を無視する |
解説
空のディレクトリだけ
rmdir が削除できるのは、中身が空のディレクトリだけです。中にファイルがあると「Directory not empty」のエラーになります。これは、うっかり中身ごと消してしまうことを防ぐ安全な性質です。
中身ごと消すには
中身を含めて消したいときは、rm -r ディレクトリ を使います。何が消えるかを確かめてから実行しましょう。
親ディレクトリも消す
rmdir -p a/b/c は、a/b/c、a/b、a の順に、空であれば削除します。mkdir -p a/b/c の逆の操作と考えると分かりやすいです。途中で空でないディレクトリに出会うと、そこで止まります。
試験での注意
ディレクトリの作成が mkdir、削除が rmdir で、ファイルの削除は rm です。ディレクトリを消すのに rm だけでは足りず、-r か -d が必要な点とあわせて覚えておきましょう。