
削除しないファイルを誤って削除しました。将来的には、私のファイルを保護するために一種のセーフティネットを実装したいと思います。
rm *
端末に何かを入力するたびにすべてのファイルを削除するかどうかを尋ねたいです。どのようなヒントがありますか?
答え1
タイプ
rm *
それ自体でアラームベルが鳴るはずです。これは時々実行する必要がある完全に正当なコマンドですが、実行する前に削除*
したいファイル名と一致する正しいディレクトリにあることを確認する必要があります(現在のディレクトリをプロンプトの一部にすることはできますか?)。ファイル(を使用して確認できますecho *
)など
そこはい-i
rm
ファイルを削除する前に確認を要求するオプションを使用できます。作るニックネーム時間rm
が経つにつれてrm -i
人々が始まることがわかりました。頼るこのオプションを使用すると、エイリアスが設定されていないと予期しない結果になる可能性がある愚かなエラーをキャッチできます。したがって、Enter特にファイルを削除(または上書きまたは切り捨てる)ジョブを実行するときに、を押す前に考える習慣を持つことをお勧めします。
または、失いたくないすべてのアイテムを時間ごとにバックアップしてください。restic
またはオフサイトバックアップをお勧めしますborgbackup
。
答え2
私が何年もやってきたベストプラクティスは、シェルでオートコンプリートを有効にしてキーを押すことです。商標(またはこの機能がマップされたキー)そのキーを押すと、*ファイルが拡張されていることがわかります。
また、次のようにrmエイリアスを追加しました。
alias rm='nocorrect rm -Iv'
間違った私のシェルZshにrmを入力すると、時々重複する自動修正メッセージはデフォルトで無視されます。次のファイルがあるとします。レミ現在ディレクトリにあるか、次のディレクトリがあります。レミ、Norightはこの問題を処理します。
-私rmが3つ以上のファイルを削除したり、ディレクトリを繰り返し削除したりするときにプロンプトとして使用されます。
- -V詳細については、rmが何を削除するかを確認するためにこの操作をキャンセルしたい場合があります。Ctrl-c)何らかの理由で間違ったファイルを削除した場合。よく使わないけどコースを見てよかったです。
答え3
tcsh
シェルを使用している場合は、rmstar
その変数を設定できます。
tcsh> set rmstar
tcsh> touch file
tcsh> rm *
Do you really want to delete all files? [N/y]
ただし、これは以下には適用されません。
tcsh> rm ./*
tcsh>
残念ながら、それはrm ./*
あなたがすべきことです。rm *
で終わる名前があれば安全ではありません-
。
zsh
この機能は調整および改善され、デフォルト値tcsh
に設定されました。
zsh$ rm ./*
zsh: sure you want to delete the only file in /home/chazelas/. [yn]?
zsh$ rm foo /*
zsh: sure you want to delete all 33 files in / [yn]?
(このような場合がありますのでご注意ください。今後 rm
参加することもあります。上記は)を押すまでfoo
削除されませんy
。
あなたはそれを無効にすることができます
set -o rmstarsilent
rmstarwait
トリガーを好むユーザーのためのオプションもあります。
RM_STAR_WAIT
:「rm」を実行する前にユーザーに問い合わせると'または 'rmパス/というメッセージが表示されたら、最初に10秒間待ってから、この間に入力した内容をすべて無視してください。これにより、人々が意図しなかったときに反射的に「はい」と答える問題を回避できます。 ZLEで「*」(タブを含む)を拡張すると、待機とクエリを常に回避できます。
この検査をバイパスするもう1つの方法はを使用することですrm ./**
。
答え4
「rm -i」を使う習慣を身につけましょう。必ず必要な場合以外は目を開けて使用しないでください。