ファイルやディレクトリの削除 ~rm、rmdirコマンド~
本記事の対象者
LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。
今回の内容
今回は、rm・rmdirコマンドについて解説します。両方とも削除に関するコマンドですが、違いがありますのでしっかり把握しましょう。
rm
「rm」コマンドは、ファイルやディレクトリを削除する際に使用します。
英単語「remove(削除)」に由来します。
rmコマンド | |
---|---|
意味 | ファイルやディレクトリを削除する |
書式 | rm [オプション] [ファイル名 or ディレクトリ名] |
主なオプションは以下です。
オプション | 説明 |
---|---|
-f | 確認なしに強制的に削除する。 –forceに同じ。(forceは「強制」の意) |
-i | 削除するか事前に確認する。 –interactiveに同じ。(interactiveは「対話式」の意) |
-R | サブディレクトリ含め、ディレクトリ全体を削除する。 –recursiveに同じ。(recursiveは「再帰的」の意) |
[root@localhost ~]# ls file001 file002 file003 [root@localhost ~]# rm -i file001 rm: remove 通常の空ファイル `file001`? y [root@localhost ~]# ls file002 file003 [root@localhost ~]# rm file002 file003 [root@localhost ~]# ls -l 合計:0
file001が削除され、ディレクトリから消えているのが分かります。
「-i」オプションをつけることで削除時に確認が出ます。「y」を入力すると削除され、「n」を押すと削除が中止されます。
例のように複数ファイルをまとめて削除するこも可能です。
[root@localhost ~]# ls exdir [root@localhost ~]# ls exdir file001e file002e file003e [root@localhost ~]# rm -R exdir [root@localhost ~]# ls -l exdir ls: exdir: そのようなファイルやディレクトリはありません
中の「file001e」「file002e」「file003e」も含めて「exdir」ディレクトリが削除されました。
rmdir
「rmdir」は、空のディレクトリを削除する際に使用します。
「rm」コマンドと異なり、ディレクトリにしか使用できず、またディレクトリが空の場合にしか使用できません。
「remove directory」に由来します。
rmdirコマンド | |
---|---|
意味 | 空のディレクトリを削除する |
書式 | rmdir [オプション] [ディレクトリ名] |
主なオプションは以下です。
オプション | 説明 |
---|---|
-p | 引数で指定した各階層のディレクトリすべてを削除する。 –parentに同じ。(parentは「親」の意) |
[root@localhost ~]# ls exdir001 exdir002 [root@localhost ~]# rmdir exdir001 [root@localhost ~]# ls exdir002
[root@localhost ~]# ls exdir002 [root@localhost ~]# ls exdir002 exdir003 [root@localhost ~]# rmdir exdir002/exdir003 [root@localhost ~]# ls -ld exdir002 ls: exdir002: そのようなファイルやディレクトリはありません
これが「-p」オプションの役割で、親子の階層関係にあるディレクトリをまとめて削除することができます。
「exdir003」が空であり、「exdir002」配下に「exdir003」のみが存在する状態であれば削除することができます。
まとめ
今回は、削除に関する「rm」「rmdir」コマンドについて学習しました。
「rmdir」コマンドは対象のディレクトリが空でないと使用できないため、基本的には「rm」コマンドを使うことが多いです。
ただし、これらのコマンドはwindowsの「ゴミ箱にいれる」操作と違い、削除すると基本的に復元不可能になりますので、使用の際は細心の注意を払いましょう。
最後に確認問題で今回学習した内容を確かめてください。
確認問題
rmコマンドにおいて、確認なしに強制的に削除するオプションは次のうちどれか。
A) -f
B) -i
C) -R
D) -v
「sample」ディレクトリ配下に「file001.txt」「file002.txt」が存在する。これらのファイルを含めて「sample」ディレクトリを削除するコマンドとして正しいものはどれか。
A) rmdir -R sample
B) rmdir -p sample
C) rm -Ri sample
D) rm -p sample