
rm コマンドでファイルやフォルダを削除するときに確認を有効にする
コマンドラインユーザーの多くは、ファイルの削除に「rm」コマンドが非常に強力で、ファイルシステム内のほぼすべてのファイルを、削除すべきかどうかに関わらず削除できることをご存知でしょう。ワイルドカードやsudoを追加すると、rmとsrmの強力さは飛躍的に増し、潜在的に危険になります。そのため、rm機能にセキュリティレイヤーを追加したい上級ユーザーは、rmコマンドとsrmコマンドで確認ダイアログを有効にすることができます。これは、コマンドラインを学習中で、ファイルの即時削除とコマンド実行の間に確認レイヤーを設けたいユーザーにとっても、役立つ保護メカニズムとなります。
このトリックは2つの部分に分かれています。1つ目は、rmコマンドでファイルまたはフォルダを削除する前に確認メッセージを表示するための適切なフラグを知ることです。2つ目は、エイリアスを使用して、前述の確認付き削除をrmコマンドの新しいデフォルトオプションに設定することです。これらのトリックはどちらもMac OS X、Linux、その他ほとんどのUNIX系OSで機能するため、オペレーティングシステムにはほとんど依存しません。また、強力なsrm secure removeコマンドでも機能します。これは明らかに、コマンドラインに慣れている上級ユーザーを対象としており、rmやsrmは初心者には適したツールではありません。
ファイルやフォルダを削除する前に確認メッセージを表示するrmコマンドの使い方
rm (または srm) を使用してファイルを削除する前に確認を有効にする構文は、次のように使用する -i フラグだけです。
rm -i filename
たとえば、「theSampleFile.zip」という名前のファイルを削除するときに、コマンドを削除する前に確認したい場合は、次の構文を使用します。
rm -i theSampleFile.zip
リターンキーを押すと、問題のファイル名を削除するかどうかを尋ねられ、次のようにコマンドによって削除前に正確なファイルが繰り返されます。
% rm -i theSampleFile.zip
remove theSampleFile.zip? y
「y」を押してリターンキーを押すと「はい」と応答してファイルが削除され、「n」を押してリターンキーを押すと「いいえ」と応答してファイルは削除されません。
rm -i 構文は -r と組み合わせて使用することで、含まれるサブフォルダ内のディレクトリとファイルの内容を再帰的に削除する前に確認を得ることができます。
rm -ir /Example/Folder/
ここでも、ディレクトリ内で見つかった個々のファイルに対してコマンドが完了する前に、ay または n を発行する必要があります。
srm で同じ確認ダイアログを表示する場合も、-i フラグを使用します。
srm -i /Example/file.zip
ここでも、y キーと n キーを使用して、指定したファイルの削除を確認または拒否します。
エイリアスを使用してデフォルトで「rm」コマンドの確認を有効にする方法
.bash_profile または .profile を開き、次のようなエイリアスを作成して、デフォルトの 'rm' 構文を 'rm -i' に変更し、新しいデフォルトにすることができます。
alias rm='rm -i'
次のように、srm を使用して同じタイプのエイリアスを作成できます。
alias srm='srm -i'
これら両方をプロファイル内の一意の行に追加するだけで十分であり、その後シェルを更新すると、bash、zsh、tcsh、または使用中のシェルから両方にアクセスできるようになります。
ファイルを削除する前にコマンドラインでrmとsrmを安全に実行するための、他に高度なヒントがあれば教えてください。コメント欄で教えてください。また、もっと興味深いコマンドラインのヒントを知りたい場合は、このテーマに関する幅広い記事をご覧ください。