重要なポイント
>rm コマンドを使用すると、「rm ファイル名」または「rm -d ディレクトリ」という名前を指定してファイルまたはディレクトリを削除できます。ディレクトリ パスを含めることもできます。ディレクトリ内にファイルがある場合は、-r オプション「rm -r directory」を使用してファイルとフォルダーを再帰的に削除します。
Linux
rm
コマンドはファイルとディレクトリを削除します。このツールを安全に使用するには、「Enter」を押したときに何が起こるかを確認する必要があります。知っておくべきことは次のとおりです。
Linuxのrmコマンドとは何ですか?
Linux
rm
コマンドは主にファイルを削除するためのものです。これは、ほとんどの人が Linux を使い始めてすぐに遭遇する問題です。
Linux の初心者
というだけで、間違いを犯す可能性があります。ファイルを誤って作成したりコピーしたり、間違った名前を付けたり、間違った場所にコピーしたりすることがあります。それはすべて、コマンド ラインの学習曲線の一部です。このような間違いのクリーンアップ操作には
rm
が含まれます。
rm
コマンドは、ファイル、ファイルのグループ、ディレクトリ、またはディレクトリ ツリー全体を削除できます。だからこそ、注意して使用する必要があります。
rm
使用は難しくありませんが、失敗した場合のペナルティは高くなります。
ファイルを
rm
で削除すると、そのファイルは消えてしまいます。ゴミ箱には移動されません。それはすぐに消去されます。それは、
rm
使用を避けるべきだという意味ではありません。ただし、安全に使用するには、それができることを認識し、正しく使用していることを確認する必要があります。
一部のツールは他のツールよりも危険であり、間違いがはるかに許容されません。 「テキサスレンチの大虐殺」という映画がこれまで存在しなかったのはそのためです。
rm
レンチではなく、間違いなくチェーンソーです。
人々は毎日一日中チェーンソーを使用しますが、責任を持って慎重に使用している限り、問題はありません。
rm
と同じ扱いです。ツールバッグから
rm
取り出すときは、速度を落としてコマンド ラインを確認し、さらに再確認する必要があります。
rm
コマンドは実行可能ファイルであり、シェルの一部ではありません。したがって、ここでは Bash を使用していますが、これは標準の Linux
rm
であり、特別な Bash
rm
ではありません。
rmでファイルを削除する方法
rm
を使用する最も簡単な方法は、削除するファイルの名前を指定することです。
rm config.gc
何も言わずにコマンド ラインに戻ります。
rm
、何も文句を言わなければ、要求どおりに実行したとみなしてよいという、古典的で口を閉ざした Linux のスタンスを採用しています。このようなファイル名を指定すると、
rm
現在の作業ディレクトリでファイルを検索します。
コマンドラインでは複数のファイル名を指定できます。削除するファイルが現在のディレクトリにない場合は、ディレクトリ パスを指定することもできます。
rm memlog.sh /home/dave/dev-archive/config.gc
繰り返しますが、
rm
指定されたファイルを削除できたとしても、何も報告されません。
rm でのワイルドカードの使用
ワイルドカードを使用すると、コマンド ラインで個々のファイルをリストすることなく、ファイルのグループまたはコレクションを指定できます。
アスタリスク「
*
」は、文字のシーケンスを表します (何もない場合も含みます)。疑問符「
?
」は任意の 1 文字を表します。
ワイルドカードが期待どおりに一致するかどうかを確認するには、rm で使用する前に ls でワイルドカードを使用します。
現在のディレクトリにあるすべての PNG ファイルを削除するには、「*.png」を使用します。これは、「.png」が後に続く文字のシーケンスが一致することを意味します。ファイルが削除されたら、
ls
を使用してファイルが削除されたことを確認できます。
ls *.png
rm *.png
ls *.png
テスト コンピューターでは、現在のディレクトリに「config」で始まる名前のファイルが 2 つあります。
アスタリスクのワイルドカードを使用すると、これらの両方を削除できます。
rm
「config」で始まり、その後に任意の文字列が続くファイル名を探しているため、両方のファイルに一致します。あるファイルでは、その一連の文字はファイル名拡張子「.sl3」です。もう 1 つのファイル名には「config」の後に文字がありませんが、アスタリスクは任意の文字に一致するか、文字に一致しないため、そのファイル名にも一致します。
構成*
rm 構成*
構成*
疑問符はペアで使用できます。これにより、ファイル拡張子が 2 文字のファイルが正確に削除されます。
は*.??
rm*.??
は*.??
rm を対話的に使用する
rm
安全に使用する方法は、各ファイルを削除する前に強制的に確認を求めることです。
-i
(対話型) オプションを使用すると、これを行うことができます。このオプションをコマンドラインに追加すると、
rm
各削除の前にプロンプトを表示し、意図しないアクションをステップオーバーする機会を与えます。
このコマンドでは
-i
(対話型) オプションを使用します。単一文字のファイル拡張子を持つすべてのファイルを削除しようとします。
rm -i *.?
一致する各ファイルが順番に表示されます。 「y」または「Y」と答えると、ファイルは削除されます。 「n」と答えると、ファイルは保持されます。実際、「y」または「y」以外で応答すると、ファイルは保持されます。 「Enter」を押すだけで、ファイルは保持されます。
ファイルのリストをすばやく操作し、ファイルを削除したりスキップしたりして、削除したいファイルを選択できます。後で説明するように、
i-
(対話型) オプションを他の
rm
オプションと一緒に使用できます。
rm Force オプションの使用
読み取り専用のファイルを削除しようとすると、
rm
ファイルを削除する前に確認を求めるメッセージを表示します。これは優れたセーフティ ネットですが、削除するファイルが多数ある場合は面倒になる可能性があります。
rm geonames.sl3
-f
(強制) オプションは、プロンプトを表示しないように
rm
に指示します。 「はい、通常プロンプトが表示されるすべてのファイルを削除してください」と指示しているのです。また、
rm
存在しないファイルについて文句を言うのを防ぎます。
rm -f geonames.sl3
-f
(強制) オプションは、ネストされたファイルとディレクトリのセットを削除するときによく使用されます。
rm を使用したディレクトリの削除
rm
コマンドは、必要に応じて、ディレクトリとそれに含まれるファイルも削除できます。これは
rmdir
コマンドに似ていますが、
rmdir
ファイルが含まれるディレクトリを削除できません。空のディレクトリのみが削除されます。
rm
コマンドは、ファイルやその他のディレクトリを含むディレクトリを簡単に削除できます。
ディレクトリの削除は、ファイルの削除と似ています。コマンドラインでディレクトリの名前を指定します。
-d
(ディレクトリ) オプションを含める必要があります。ファイルを削除したときと同様に、複数のディレクトリの名前を指定できます。現在の作業ディレクトリにないディレクトリへのパスを指定できます。
rm -d 古いプロジェクト
ディレクトリにファイルが含まれている場合、これは失敗します。
ディレクトリとその内容を削除するには、
-r
(再帰) フラグを使用します。これにより、ディレクトリ、そのファイル、およびそれに含まれるネストされたディレクトリが削除されます。
rm -d アーカイブ
rm -r アーカイブ
2 番目のコマンドは成功します。
rm
を完全なチェーンソー モードに切り替えるには、
-r
(再帰) オプションと
-f
(強制) オプションを組み合わせます。これにより、ディレクトリ ツリー内のすべてのファイルとディレクトリを、たとえ読み取り専用であっても、プロンプトを表示せずに再帰的に削除するように
rm
に指示されます。
テスト コンピューターには、「移行済みコード」というディレクトリがあります。これには、ファイルと「6502」という別のディレクトリが含まれています。 「6502」ディレクトリには、ファイルと「ASM」という別のディレクトリも含まれています。そのディレクトリにもファイルがあります。一部のファイルは読み取り専用です。
rm
何を行っているかを知らせるために、
-v
(冗長) コマンドも含めます。
rm -rfv 移行コード
出力では、ファイルが削除され、ファイルが空の場合はディレクトリも削除されていることがわかります。
rm 使用時の間違いを避ける
ファイル名にスペースやその他の奇妙な文字が含まれていると、問題が発生する可能性があります。たとえば、ハイフン「
-
」で始まるファイル名は、コマンド ライン オプションと間違われる可能性があります。 「-contributors.txt」というファイルがある場合、
rm
その名前を一連のコマンド ライン オプションとして処理しようとします。
rm
には「
-c
」というオプションがないため、コマンドラインの解析は失敗し、ファイルは削除されません。ファイルを削除するには、ファイルの前に「./」を付けてパスを指定する必要があります。
rm -contributors.txt
rm ./-contributors.txt
ファイル名内のスペースも問題になります。ファイル名全体を引用するか、タブ補完を使用してファイル名をコマンド ラインに挿入し、その際にスペースをエスケープします。これらのオプションのいずれも使用しない場合、
rm
ファイル名の各部分を個別のファイルとして扱います。
ここには 2 つのファイルがあり、1 つは「バックアップ」、もう 1 つは「削除するバックアップ」と呼ばれています。
ls
を使用して、これらのファイル名の問題を実証できます。 「削除するバックアップ」ファイルに対して
ls
を使用しようとして、ファイル名をエスケープまたは引用符で囲まないと、コマンドは失敗します。
ls -hl 削除するバックアップ
ls
、「to」または「delete」という名前のファイルが見つからないが、「backup」という名前のファイルは見つかりますと文句を言います。それは
rm
もやることです。 2 つのファイルが見つからないというメッセージが表示され、その後「バックアップ」という名前のファイルが削除されますが、これは私たちが望んでいたものではありません。
削除するにはrmバックアップ
rm
、「backup」、「to」、「delete」の 3 つのファイルを操作していると考えています。 「to」と「delete」が見つからないと文句を言いますが、「backup」は見つけて黙って削除します。
ファイル名を引用すると、
rm
正しいファイルを削除できます。
rm 'バックアップから削除'
次のように、バックスラッシュ「
\
」を使用してスペースをエスケープすることもできます。
rm バックアップ\から\削除
タブ補完を使用して ファイル名を入力すると、必要に応じてファイル名が自動的にエスケープされます。
rm -rf を使用してすべてを削除します
どうしても何かを削除する必要がある場合は、次のコマンドを使用してください。
rm -rf
これは、削除を強制する -f フラグと、フォルダーを再帰的に削除する -r フラグを組み合わせたものです。以前は (冗長 に するために) -v 引数を含めていましたが、これは必須ではありません。これは基本的に核による選択肢であり、何かを永久に消滅させたいと確信している場合を除き、使用すべきではないことを覚えておいてください。
何のPPE?
現実世界のチェーンソーとは異なり、
rm
で使用できる個人用保護具はありません。
できることは、
rm
で試す前に
ls
で
構文をチェックし
、対話モードを使用して、何を削除するかを決定できるようにすることです。
それ以外は、快適で自信が持てるまで練習します。これを行う最も安全な方法は、大量の犠牲ファイルをディレクトリにコピーし、それらで練習することです。





