rm -rオプションの使い方を解説!初心者でもわかるLinuxでディレクトリを削除する方法
生徒
「Linuxでフォルダを削除しようとしたら、『ディレクトリは削除できません』って表示されました……どうすればいいんですか?」
先生
「それはrmコマンドだけでは、フォルダ(ディレクトリ)を削除できないからですね。-rオプションを使う必要があります。」
生徒
「-rって何ですか?」
先生
「-rは『再帰的に削除』するという意味です。中身が入っているフォルダごと一気に削除できるんですよ。詳しく見ていきましょう!」
1. rmコマンドとフォルダ削除の関係
rmコマンドは、Linuxでファイルを削除するために使いますが、フォルダ(ディレクトリ)をそのまま削除することはできません。
フォルダを削除するには、-rというオプションをつける必要があります。この-rは「recursive(再帰的)」の略で、「中にあるものも含めて全部削除するよ」という意味です。
2. rm -rの基本的な使い方
フォルダ(ディレクトリ)を削除したいときは、次のように-rオプションを使います。
rm -r sample_folder
これで、sample_folderの中に入っているファイルやサブフォルダもすべて削除されます。
たとえば、以下のような構成だった場合:
- sample_folder
- file1.txt
- subfolder
- file2.txt
この中身すべてが削除されます。
3. 中身が入っているフォルダも削除できる理由
通常、フォルダは中にファイルが入っていると削除できません。しかしrm -rは、「中にあるものも全部たどって削除していく」機能なので、フォルダごと消せるのです。
この「たどる」という動作が「再帰的(さいきてき)」と呼ばれるもので、プログラミングでは「中にあるものも繰り返して処理する」という考え方になります。
4. 削除前に確認したいなら -ri を使おう
フォルダの中身まで一気に削除できるrm -rは強力ですが、間違えて大事なデータを消してしまう危険もあります。
安全に使いたいときは、-iオプションを組み合わせて、削除する前に毎回確認メッセージを表示させましょう。
rm -ri sample_folder
rm: descend into directory 'sample_folder'?
rm: remove regular file 'sample_folder/file1.txt'?
rm: descend into directory 'sample_folder/subfolder'?
rm: remove regular file 'sample_folder/subfolder/file2.txt'?
rm: remove directory 'sample_folder/subfolder'?
rm: remove directory 'sample_folder'?
このように、1つ1つ確認しながら削除することができます。
5. ワイルドカードとrm -rの組み合わせ
ワイルドカード(*)を使うと、複数のフォルダをまとめて削除できます。
たとえば、tmp_で始まるフォルダを全部削除したいときは:
rm -r tmp_*
このコマンドで、tmp_test や tmp_backup などのフォルダがすべて削除されます。
もちろん、ワイルドカードを使うときも-iオプションと組み合わせると安全です。
6. rm -rとrm -rfの違い
rm -rに加えて、よく見かけるのがrm -rfという表記です。これは次のような違いがあります。
-r:フォルダの中身もすべて削除-f:force(強制)削除。確認なし、エラーも無視
rm -rfはとても強力で、一切の確認なしに削除を実行します。初心者のうちは絶対に使わない方がよいです。
たとえば、誤って次のようなコマンドを実行してしまうと、システムに必要なファイルまで消してしまい、Linuxが動かなくなることもあります。
rm -rf /
このような危険な操作を避けるためにも、初心者は-fを使わずに-riをおすすめします。
7. 削除前にlsで中身を確認しよう
コマンドを実行する前には、lsコマンドで中身を確認しておくと安全です。
たとえば、削除対象のフォルダに何が入っているかを確認するには:
ls -R sample_folder
sample_folder:
file1.txt subfolder/
sample_folder/subfolder:
file2.txt
このように、-Rオプションを使うことで、フォルダの中身まで一覧で確認できます。
8. 一般ユーザーとrootユーザーでの使い方
Linuxでは、通常のユーザー(一般ユーザー)と、すべての操作ができるroot(ルート)ユーザーがいます。
rootユーザーでrm -rを使うと、システム全体のファイルを削除できてしまうため、さらに注意が必要です。
rm -r /var/log/old_logs
このようなコマンドを使う際は、削除対象をしっかり確認してから実行しましょう。