Infra Engineer

ファイルやディレクトリの削除 ~rm、rmdirコマンド~
2021.07.28
Lv1

ファイルやディレクトリの削除 ~rm、rmdirコマンド~

本記事の対象者

LPIC level1習得を目指す初学者の方
コマンドの基本的な用途について、要点を絞って解説します。


今回の内容

今回は、rm・rmdirコマンドについて解説します。両方とも削除に関するコマンドですが、違いがありますのでしっかり把握しましょう。

rm
rmdir
まとめ
確認問題


rm

「rm」コマンドは、ファイルやディレクトリを削除する際に使用します。
英単語「remove(削除)」に由来します。

rmコマンド
意味 ファイルやディレクトリを削除する
書式 rm [オプション] [ファイル名 or ディレクトリ名]

主なオプションは以下です。

オプション 説明
-f 確認なしに強制的に削除する。
–forceに同じ。(forceは「強制」の意)
-i 削除するか事前に確認する。
–interactiveに同じ。(interactiveは「対話式」の意)
-R サブディレクトリ含め、ディレクトリ全体を削除する。
–recursiveに同じ。(recursiveは「再帰的」の意)
例)
「file001」を確認しながら削除(-i)。「file002」「file003」をまとめて削除。
[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」を押すと削除が中止されます。
例のように複数ファイルをまとめて削除するこも可能です。

例)
「exdir」ディレクトリを中のファイルも含めて削除。
[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は「親」の意)
例)
「exdir001」を削除。
[root@localhost ~]# ls
exdir001 exdir002
[root@localhost ~]# rmdir exdir001
[root@localhost ~]# ls
exdir002
例)
「exdir002」配下に「exdir003」がある状態で、「exdir003」ごと「exdir002」を削除(-p)。
[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の「ゴミ箱にいれる」操作と違い、削除すると基本的に復元不可能になりますので、使用の際は細心の注意を払いましょう。

最後に確認問題で今回学習した内容を確かめてください。

確認問題

問題1

rmコマンドにおいて、確認なしに強制的に削除するオプションは次のうちどれか。

A) -f
B) -i
C) -R
D) -v

解答・解説
答え:A

A) ⇒ 正解です。
B) ⇒ 削除するか事前確認をいれるためのオプションです。
C) ⇒ ディレクトリ配下を含め削除するオプションです。
D) ⇒ 経過を表示するオプションです。

問題2

「sample」ディレクトリ配下に「file001.txt」「file002.txt」が存在する。これらのファイルを含めて「sample」ディレクトリを削除するコマンドとして正しいものはどれか。

A) rmdir -R sample
B) rmdir -p sample
C) rm -Ri sample
D) rm -p sample

解答・解説
答え:C

A) ⇒ 「rmdir」コマンドは、空のディレクトリしか削除することはできません。
B) ⇒ 同上
C) ⇒ 「-R」はディレクトリ配下を含め削除するオプションです。これが正解です。
D) ⇒ 「rm」コマンドに「-p」オプションはありません。