- rm コマンドと rmdir コマンドは、Linux やその他の Unix 系システムでファイルやディレクトリを削除するために使用されます。Windows や DOS の del コマンドと deltree コマンドに似ています。
- rm コマンドと rmdir コマンドを使用して削除されたファイルやディレクトリは、ゴミ箱に移動されることなく、すぐにコンピューターから削除されます。誤って削除されたファイルを復元するには、バックアップを使用する必要があります。
- rm コマンドは、ファイルのグループを選択するためにワイルドカードを使用するオプションを指定して、1 つのファイルまたは複数のファイルを削除できます。rmdir コマンドは空のディレクトリのみを削除できますが、rm -r オプションはディレクトリとそのすべての内容を削除するために使用されます。rm -rf コマンドを使用する際には注意が必要です。データの損失やシステムの誤動作を引き起こす可能性があります。
rm
コマンドとrmdir
コマンドは、Linux、macOS、およびその他の Unix 系オペレーティング システムでファイルやディレクトリを削除します。Windows や DOS のdel
コマンドとdeltree
コマンドに似ています。これらのコマンドは非常に強力で、多くのオプションがあります。
rm
コマンドとrmdir
コマンドを使用して削除されたファイルやディレクトリは、ゴミ箱に移動されないことに注意することが重要です。それらはすぐにコンピューターから削除されます。これらのコマンドを使用して誤ってファイルを削除した場合、バックアップから復元できる唯一の方法です。
rm を使用して Linux でファイルを削除する方法
最も単純なケースは、現在のディレクトリにある単一のファイルを削除することです。rm
コマンドとスペースを入力し、削除するファイルの名前を入力します。
rm file_1.txt
ファイルが現在の作業ディレクトリにない場合は、ファイルの場所へのパスを指定します。
rm ./path/to/the/file/file_1.txt
複数のファイル名をrm
に渡すことができます。そうすると、指定されたすべてのファイルが削除されます。
rm file_2.txt file_3.txt
ワイルドカードを使用して、削除するファイルのグループを選択できます。*
は複数の文字を表し、?
は 1 文字を表します。このコマンドは、現在の作業ディレクトリにあるすべての png 画像ファイルを削除します。
rm *.png
このコマンドは、1 文字の拡張子を持つすべてのファイルを削除します。たとえば、これは File.1 と File.2 を削除しますが、File.12 は削除しません。
rm *.?
ファイルが書き込み禁止されている場合、ファイルが削除される前にプロンプトが表示されます。y
またはn
で応答し、「Enter」キーを押す必要があります。
ワイルドカードを使用してrm
を使用するリスクを軽減するには、-i
(対話型)オプションを使用します。これにより、各ファイルの削除を確認する必要があります。
rm -i *.dat
-f
(強制)オプションは、対話型の反対です。ファイルが書き込み禁止されている場合でも、確認を求めません。
rm -f filename
rm を使用して Linux でディレクトリを削除する方法
空のディレクトリを削除するには、-d
(ディレクトリ)オプションを使用します。ファイル名と同様に、ディレクトリ名にワイルドカード(*
と?
)を使用できます。
rm -d directory
複数のディレクトリ名を指定すると、指定されたすべての空のディレクトリが削除されます。
rm -d directory1 directory2 /path/to/directory3
空でないディレクトリを削除するには、-r
(再帰的)オプションを使用します。つまり、これによりディレクトリとその中に含まれるすべてのファイルとサブディレクトリが削除されます。
rm -r directory1 directory2 directory3
ディレクトリまたはファイルが書き込み禁止されている場合、削除を確認するよう求められます。空でないディレクトリを削除し、これらのプロンプトを抑制するには、-r
(再帰的)オプションと-f
(強制)オプションを一緒に使用します。
rm -rf directory
ここでは注意が必要です。rm -rf
コマンドを誤って使用すると、データが失われたり、システムが誤動作を起こす可能性があります。危険なので、注意することが最善策です。rm -rf
コマンドによってディレクトリ構造と削除されるファイルを確認するには、tree
コマンドを使用します。
Ubuntu やその他の Debian ベースのディストリビューションを使用している場合は、apt-get
を使用してこのパッケージをシステムにインストールします。他の Linux ディストリビューションでは、Linux ディストリビューションのパッケージ管理ツールを使用します。
sudo apt-get install tree
tree
コマンドを実行すると、コマンドが実行されたディレクトリの下にあるディレクトリ構造とファイルのわかりやすい図が生成されます。
tree
tree
コマンドにパスを指定して、ファイルシステムの別のディレクトリからツリーを開始させることもできます。
tree path/to/directory
rm
コマンドには--one-file-system, --no-preserve-root, --preserve-root
オプションもありますが、それらは上級ユーザーにのみ推奨されます。何かを間違えると、システム ファイルをすべて誤って削除する可能性があります。詳細については、コマンドのマニュアル ページを参照してください。
rmdir を使用して Linux でディレクトリを削除する方法
ディレクトリを削除するために使用できる、rmdir
という別のコマンドがあります。rm
とrmdir
の違いは、rmdir
は空のディレクトリのみを削除できることです。決してファイルを削除することはありません。
最も単純なケースは、1 つの空のディレクトリを削除することです。rm
と同様に、複数のディレクトリ名をrmdir
に渡すか、ディレクトリへのパスを渡すことができます。
その名前をrmdir
に渡すことで、現在のディレクトリにある単一のディレクトリを削除します。
rmdir directory
名前のリストをrmdir
に渡すことで、複数のディレクトリを削除します。
rmdir directory1 directory2 directory3
そのディレクトリへの完全なパスを指定することで、現在のディレクトリにないディレクトリを削除します。
rmdir /path/to/directory
空でないフォルダーを削除しようとすると、rmdir
はエラー メッセージを表示します。次の例では、rmdir
はclients
ディレクトリを正常に、かつ静かに削除しますが、ファイルが含まれているためprojects
ディレクトリの削除を拒否します。projects
ディレクトリはそのまま残り、その中のファイルはそのままです。
rmdir
が「Directory not empty」エラーを出した場合は、コマンド ラインで渡されたディレクトリの処理を停止します。4 つのディレクトリを削除するように求め、最初のディレクトリにファイルがあった場合、rmdir
はエラー メッセージを表示してそれ以上何も行いません。--ignore-fail-on-non-empty
オプションを使用して、これらのエラーを無視して、他のディレクトリが処理されるように強制できます。
次の例では、2 つのフォルダーがrmdir
に渡されました。これらはwork/reports
とwork/quotes
です。--ignore-fail-on-non-empty
オプションがコマンドに含まれています。work/reports
フォルダーにはファイルが含まれているため、rmdir
はそれを削除できません。--ignore-fail-on-non-empty
オプションにより、rmdir
はエラーを無視して、処理する必要がある次のフォルダー(work/quotes
)に進みます。これは空のフォルダーであり、rmdir
はそれを削除します。
使用されたコマンドは次のとおりです。
rmdir --ignore-fail-on-non-empty work/reports /work/quotes
-p
(親)オプションを使用して、ディレクトリとその親ディレクトリも削除できます。このトリックが機能するのは、rmdir
がターゲット ディレクトリから開始し、親ディレクトリにバックステップするためです。そのディレクトリは空になっているはずなので、rmdir
によって削除することができ、このプロセスはrmdir
に提供されたパスを遡って繰り返されます。
次の例では、rmdir
に渡されるコマンドは次のとおりです。
rmdir -p work/invoices
要求どおり、invoices
とwork
の両方のディレクトリが削除されます。
Bash やその他のシェルを使用している場合でも、Linux にはターミナル コマンド ラインから直接ディレクトリやファイルを削除するための柔軟で強力なコマンドが用意されています。ターミナルを中心としたワークフローを好む人もいます。選択肢がない人もいます。GUI がインストールされていないサーバーや、Raspberry Pi などのヘッドレス システムへのリモート セッションで作業している可能性があります。これらのコマンドはそのような人々に最適です。
しかし、どのようなタイプのワークフローを好む場合でも、これらのコマンドはシェル スクリプトに組み込むのに非常に適しています。スクリプトがcron
ジョブによってトリガーされた場合、不要なログ ファイルを削除するなどの定期的なハウスキーピング タスクを自動化できます。そのユースケースを調査する場合は、これらのコマンドの力を覚えておき、すべてを慎重にテストし、常に最新のバックアップを維持してください。
コメントする