Linuxコマンドrmの使い方と4つのオプション

LinuxコマンドrmはLinux(またはUnix)システムを使用中に不要なファイルを削除する際に最もよく使用されるコマンドの一つです。rmコマンドは「remove」の略で、ファイルやディレクトリを削除する時に使用されます。今回の投稿では、rmコマンドの基本的な使用法、さまざまなオプション、そして使用時の注意点について詳しく見ていきます。

Linuxコマンドrm基本使用法

rmコマンドは非常に簡単に使用できます。基本的な使用方法は次の通りです。

rm ファイル名
ShellScript

例えば、test.txtというファイルを削除したい場合は次のように入力します。

rm test.txt
ShellScript

このコマンドを入力するとtest.txtファイルが削除されます。正常に削除された場合、以下の図のように何のメッセージも表示されずにコマンドプロンプトが現れます。

図1. Linuxコマンドrm: ファイル削除
図1. Linuxコマンドrm: ファイル削除

rmコマンドの主要オプション

rmコマンドはさまざまな便利なオプションを提供しており、さまざまな状況に応じて使用できます。主要なオプションを見てみましょう。

-i (interactive: 対話モード)

-iオプションを使用すると、ファイルを削除する前に確認メッセージが表示されます。重要なファイルを誤って削除するのを防ぐことができます。

rm -i test.txt
ShellScript

こう入力するとtest.txtファイルを削除する前に削除するかどうかを尋ねるメッセージが表示されます。

空のファイルを削除する場合は、以下のように「rm: remove regular empty file ‘filename’?」と確認メッセージが表示されます。

図2. Linuxコマンドrm -iオプションで空のファイル削除
図2. Linuxコマンドrm -iオプションで空のファイル削除

そして、内容があるファイルを削除する時は「rm: remove regular file ‘filename’?」と尋ねられます。

図3. Linuxコマンドrm -iオプションで内容があるファイル削除確認
図3. Linuxコマンドrm -iオプションで内容があるファイル削除確認

上記の二つのケースではどちらもYを押せばファイルが削除され、そうでなければファイルは削除されません。

-r (recursive: 再帰的削除)

-rオプションはディレクトリとその中のすべてのファイルおよびサブディレクトリを削除する際に使用されます。空のディレクトリでない場合、このオプションを必ず使用する必要があります。

rm -r test
ShellScript

上記のコマンドはtestディレクトリとtestディレクトリ内のすべてのファイルとディレクトリを削除します。以下の図にはtestディレクトリの内容をlsコマンドで確認し、rm -rコマンドを使用してtestディレクトリとその配下のすべてのファイルとディレクトリを削除した結果を確認できます。

図4. Linuxコマンドrm -rオプションで再帰的削除
図4. Linuxコマンドrm -rオプションで再帰的削除

-f (force: 強制削除)

-fオプションは存在しないファイルを削除しようとする時に案内メッセージを表示せずに強制的に削除します。また、ファイルの権限を無視して削除を試みます。

rm -f test.txt
ShellScript

rmメッセージで存在しないファイルを削除しようとすると以下のように「rm: cannot remove ‘filename’: No such file or directory」というメッセージで削除するファイルがないことを知らせます。しかし、rm -fコマンドを使用すればファイルがなくても別の案内メッセージなしに終了します。

図5. Linuxコマンドrmオプションなしで削除する場合に表示されるエラーメッセージ
図5. Linuxコマンドrmオプションなしで削除する場合に表示されるエラーメッセージ

また、以下の図で見るとtest.txtファイルはrootユーザーとrootグループに所有権があることがわかります。オプションなしでrmコマンドを使用すると「rm: remove write-protected regular file ‘filename’?」と尋ねられますが、-fオプションを使用すれば確認なしに削除します。したがって、重要なファイルを削除する可能性がある場合、-fオプションを非常に慎重に使用する必要があります。

図6. Linuxコマンドrm -fオプションで強制削除
図6. Linuxコマンドrm -fオプションで強制削除

-v (verbose: 詳細出力)

-vオプションは削除されるファイルやディレクトリの名前を表示して、どのファイルが削除されているか確認できます。次のコマンドはtest.txtファイルが削除されるとその事実をターミナルに出力します。

rm -v test.txt
ShellScript

以下の図ではtestで始まるすべてのファイルを削除しますが、どのファイルが削除されたか確認する-vオプションを使用しました。ファイルはすべて削除されましたが、test5はディレクトリなので削除されなかったことが確認できます。もしtest5ディレクトリも削除したい場合、先に見た-rオプションを使用する必要があります。

図7. Linuxコマンドrm -vオプションで削除結果を詳細に出力
図7. Linuxコマンドrm -vオプションで削除結果を詳細に出力

rmコマンド使用時の注意点

データ復旧不可

rmコマンドでファイルを削除すると、そのファイルは完全に削除され、一般的な方法では復旧できません。したがって、重要なファイルを削除する際は特に注意が必要です。可能であればバックアップを作成するのが良いでしょう。

もしGUI環境でLinuxを使用している場合、ファイルマネージャなどからファイルを削除して削除されたファイルをゴミ箱に残しておくこともできます。

再帰的削除時の注意

-rオプションを使用する際は特に注意が必要です。ディレクトリ全体を削除する際に重要なデータが含まれたディレクトリを誤って削除するリスクがあります。このオプションを使用する時は常に確認する習慣を持ちましょう。

強制削除時の注意

-fオプションは非常に強力なオプションで、権限問題を無視してファイルを削除します。このオプションを乱用すると、システムに必要なファイルを誤って削除する可能性があるため注意が必要です。

便利な活用方法

特定拡張子を持つファイルの一括削除

特定の拡張子を持つファイルを一度に削除したい時、rmコマンドとワイルドカード(*)を組み合わせて使用できます。例えば、.logファイルをすべて削除するには次のようにします。

rm *.log
ShellScript

このコマンドは現在のディレクトリ内のすべての.logファイルを削除します。

図8. Linuxコマンドrm: ワイルドカード(*)を使用して一括削除
図8. Linuxコマンドrm: ワイルドカード(*)を使用して一括削除

特定ディレクトリ内のすべてのファイルを削除

ディレクトリ内のすべてのファイルを削除したい時、rmコマンドと*ワイルドカードを使用できます。例えば、tempディレクトリ内のすべてのファイルを削除するには次のようにします。

rm temp/*
ShellScript

このコマンドはtempディレクトリ内のすべてのファイルを削除しますが、サブディレクトリは削除しません。サブディレクトリもすべて削除するには-rオプションを追加する必要があります。

rm -r temp/*
ShellScript

以下の図でtempディレクトリに2つのファイルと1つのディレクトリがあることを確認できます。rm temp/*コマンドを使用するとtempディレクトリ内のファイルが削除されますが、ディレクトリは削除できないと表示されます。rm -rオプションを使用してtempディレクトリ配下のディレクトリをすべて削除することが確認できます。

図9. Linuxコマンドrm -rオプションで配下ディレクトリのファイルおよびディレクトリ削除
図9. Linuxコマンドrm -rオプションで配下ディレクトリのファイルおよびディレクトリ削除

まとめ

rmコマンドはLinuxでファイルやディレクトリを削除する時に非常に便利なツールです。基本的な使用方法と主要オプションを理解して活用すれば、ファイル管理が非常に簡単になります。しかし強力なコマンドであるため、使用時の注意点を常に念頭に置いて誤って重要なデータを削除しないように注意する必要があります。必要に応じてバックアップを作成する習慣を持つのも良い方法です。この投稿がrmコマンドを安全かつ効果的に使用する助けとなることを願っています。

リファレンス

関連ポスト

コメントする