Linux rm コマンド: 知っておくべきすべてのこと
公開: 2023-01-22 Linux rm
コマンドは、ファイルとディレクトリを削除します。 このツールを安全に使用するには、「Enter」を押したときに何が起こるかを確認する必要があります。 知っておくべきことは次のとおりです。
Linux の rm コマンドとは何ですか?
rm でファイルを削除する方法
rm でのワイルドカードの使用
対話的に rm を使用する
rm Force オプションの使用
rm によるディレクトリの削除
rm 使用時の間違いの回避
何のPPE?
Linux の rm コマンドとは何ですか?
Linux rm
コマンドは、主にファイルを削除するためのものです。 これは、ほとんどの人が Linux を使い始めてすぐに遭遇するものです。 Linux の初心者であるという理由だけで、間違いを犯す可能性があります。 誤って、間違った名前で、または間違った場所にファイルを作成またはコピーします。 これはすべて、コマンド ラインの学習曲線の一部です。 このような間違いのクリーンアップ操作には、 rm
が含まれます。
rm
コマンドは、ファイル、ファイルのグループ、ディレクトリ、または完全なディレクトリ ツリーを削除できます。 そのため、注意して使用する必要があります。 rm
の使用は難しくありませんが、失敗した場合のペナルティは高くなります。
rm
でファイルを削除すると、ファイルはなくなります。 ゴミ箱には移動されません。 すぐに抹消されます。 これは、 rm
の使用を避けるべきだという意味ではありません。 ただし、安全に使用するには、その機能を認識し、適切に使用していることを確認する必要があります。
一部のツールは、他のツールよりも危険であり、間違いを許容しません。 そのため、 The Texas Wrench Massacreという映画はありませんでした。 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
が指定されたファイルを削除できた場合、何も報告されません。
関連:知っておくべき37の重要なLinuxコマンド
rm でのワイルドカードの使用
ワイルドカードを使用すると、コマンド ラインで個々のファイルを一覧表示しなくても、ファイルのグループまたはコレクションを指定できます。
アスタリスク「 *
」は、文字列がないことも含め、任意の文字列を表します。 クエスチョンマーク「 ?
” は、任意の 1 文字を表します。
ワイルドカードが期待どおりに一致することを確認するには、rm で使用する前に ls で使用します。
現在のディレクトリ内のすべての PNG ファイルを削除するには、「*.png」を使用します。 これは、「.png」が続く任意の文字シーケンスが一致することを意味します。 ファイルが削除されたら、 ls
を使用してファイルが削除されたことを確認できます。
ls *.png
rm *.png
ls *.png
テスト コンピューターでは、現在のディレクトリに "config" で始まる名前の 2 つのファイルがあります。
アスタリスクのワイルドカードを使用して、これらの両方を削除できます。 rm
は「config」で始まり、その後に任意の文字列が続くファイル名を探しているため、両方のファイルに一致します。 1 つのファイルでは、その一連の文字はファイル名拡張子「.sl3」です。 もう 1 つのファイル名には「config」の後に文字がありませんが、アスタリスクは任意の文字または文字なしに一致するため、そのファイル名にも一致します。
ls構成*
RM構成*
ls構成*
疑問符はペアで使用できます。 これにより、ファイル拡張子が正確に 2 文字のファイルが削除されます。
ls *.??
rm *.??
ls *.??
関連: Bash で知っておくべき 15 の特殊文字
対話的に rm を使用する
rm
を使用する安全な方法は、各ファイルを削除する前に、強制的に確認を求めることです。 -i
(対話型) オプションを使用すると、これを行うことができます。 このオプションをコマンド ラインに追加すると、削除するたびにrm
からプロンプトが表示され、意図しないアクションを実行する機会が与えられます。
このコマンドでは-i
(インタラクティブ) オプションを使用します。 単一文字のファイル拡張子を持つすべてのファイルを削除しようとします。
rm -i *.?
一致する各ファイルが順番に表示されます。 「y」または「Y」と答えると、ファイルは削除されます。 「n」と答えると、ファイルは保持されます。 実際、「y」または「y」以外で応答すると、ファイルは保持されます。 「Enter」を押すだけで、ファイルが保持されます。
ファイルのリストをすばやく処理し、ファイルを削除またはスキップして、削除したいファイルを選択できます。 i-
(対話型) オプションを他のrm
オプションと一緒に使用できることがわかります。
Linux コマンド | ||
ファイル | tar・pv・cat・tac・chmod・grep・diff・sed・ar・man・pushd・popd・fsck・testdisk・seq・fd・pandoc・cd・$PATH・awk・join・jq・fold・uniq・journalctl · tail · stat · ls · fstab · echo · less · chgrp · chown · rev · look ·文字列· type · rename · zip · unzip · mount · umount · install · fdisk · mkfs · rm · rmdir · rsync · df · gpg · vi · nano · mkdir · du · ln · patch · convert · rclone · shred · srm · scp · gzip · chattr · cut · find · umask · wc | |
プロセス | alias · screen · top · nice · renice · progress · strace · systemd · tmux · chsh · history · at · batch · free · which · dmesg · chfn · usermod · ps · chroot · xargs · tty · pinky · lsof · vmstat · timeout · wall · yes · kill · sleep · sudo · su · time · groupadd · usermod · groups · lshw · shutdown · reboot · halt · poweroff · passwd · lscpu · crontab · date · bg · fg · pidof · nohup · pmap | |
ネットワーキング | netstat · ping · traceroute · ip · ss · whois · fail2ban · bmon · dig · finger · nmap · ftp · curl · wget · who · whoami · w · iptables · ssh-keygen · ufw · arping · firewalld |
関連:開発者および愛好家向けの最高のLinuxラップトップ
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
はディレクトリ ツリー内のすべてのファイルとディレクトリを再帰的に削除します。それらが読み取り専用であっても、プロンプトを表示することはありません。
テスト コンピューターには、"migrated code" という名前のディレクトリがあります。 ファイルと「6502」という別のディレクトリが含まれています。 「6502」ディレクトリには、ファイルと「ASM」と呼ばれる別のディレクトリも含まれています。 そのディレクトリにもファイルがあります。 一部のファイルは読み取り専用です。
-v
(詳細) コマンドも含めて、 rm
が何をしているかを教えてくれるようにします。
rm -rfv 移行済みコード
出力では、ファイルが削除されていることがわかります。ファイルが空の場合は、ディレクトリも削除されます。
rm 使用時の間違いの回避
ファイル名にスペースやその他の奇妙な文字が含まれていると、問題が発生する可能性があります。 たとえば、ハイフン「 -
」で始まるファイル名は、コマンド ライン オプションと間違われる可能性があります。 「-contributors.txt」というファイルがある場合、 rm
はその名前を一連のコマンド ライン オプションとして処理しようとします。
rm
には「 -c
」というオプションがないため、コマンド ラインの解析は失敗し、ファイルは削除されません。 ファイルを削除するには、先頭に「./」を付けてパスを指定する必要があります。
rm -contributors.txt
rm ./-contributors.txt
ファイル名のスペースも問題です。 ファイル名全体を引用するか、タブ補完を使用してファイル名をコマンドラインに挿入し、スペースをエスケープします。 これらのオプションのいずれも使用しない場合、 rm
はファイル名の各部分を個別のファイルとして扱います。
ここには、「バックアップ」と呼ばれるファイルと「削除するバックアップ」と呼ばれるファイルの 2 つのファイルがあります。 ls
を使用して、これらのファイル名の問題を示すことができます。 「削除するバックアップ」ファイルでls
を使用しようとして、ファイル名をエスケープまたは引用符で囲んでいない場合、コマンドは失敗します。
ls -hl 削除するバックアップ
ls
は、「to」または「delete」という名前のファイルが見つからないと文句を言いますが、「backup」という名前のファイルは見つけます。 それはrm
も行うことです。 2 つのファイルが見つからないというメッセージが表示され、"backup" という名前のファイルが削除されますが、これは私たちが望んでいたことではありません。
削除するrmバックアップ
rm
は、「backup」、「to」、「delete」の 3 つのファイルを操作していると考えています。 「to」と「delete」が見つからないと文句を言いますが、「backup」を見つけて静かに削除します。
ファイル名を引用すると、 rm
は正しいファイルを削除できます。
rm '削除するバックアップ'
次のように、バックスラッシュ「 \
」でスペースをエスケープすることもできます。
rm バックアップ\ to\ 削除
タブ補完を使用してファイル名を入力すると、必要に応じて自動的にエスケープされます。
何のPPE?
実世界のチェーンソーとは異なり、 rm
で使用できる個人用保護具はありません。
あなたができることは、 ls
で構文をチェックしてからrm
で試し、インタラクティブモードを使用して、何を削除するかを決定することです。
それ以外は、快適で自信が持てるまで練習です。 これを行う最も安全な方法は、大量の犠牲ファイルをディレクトリにコピーし、それらで練習することです。
関連: Linux で x 日以上経過したファイルを削除する