少し前に、rm -rf *
間違った端末で を実行したために、ホーム フォルダを誤って削除してしまいました。その端末の作業ディレクトリがホーム フォルダでした。
コマンドにエイリアスがあればよかったのですrm
が、そうではありませんでした。
今、 のエイリアスとしてスクリプトを作ろうと計画していますrm
。
何かベストプラクティスを提案していただけますか?
ありがとう。
答え1
カスタマイズされた が必要な場合はrm
、 と呼ぶのではなくrm
、自分の名前myrm
、delete
などを使用します。
エイリアスrm='rm -i'
は恐ろしいものです。しばらく使っていると、rm
ファイルを削除する前にデフォルトでプロンプトが表示されることを期待するようになるからです。もちろん、ある日、そのエイリアスが設定されていないアカウントでそれを実行し、何が起こっているのか理解する前に、手遅れになります。
いずれにせよ、ファイルの損失や破損に備える良い方法は、バックアップを取ることです。
誤ってファイルを削除したり上書きしたりするのを防ぐための迅速な代替手段は、ZFS のように無制限のスナップショットをサポートするファイル システムを使用することです。頻繁にスナップショットが自動的に作成されると、インシデントが発生する前の最後のスナップショットの状態でファイルを回復できます。
答え2
エイリアスを保存したいが、他のシステムとは異なるコマンドの動作に慣れたくない場合は、rm
次のように無効にすることができます。
alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."'
次に、独自の安全なエイリアスを作成します。例:
alias remove='/bin/rm -irv'
またはtrash
代わりに使用します。
答え3
使ってみてもいいでしょうtrash
代わりに、時々空にすることを忘れないでください...
答え4
以下のスクリプトを使用します。
#!/bin/sh
trash=$HOME/tmp
mv "$@" $trash
nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 &
誤ってファイルを削除した場合は、 から復元してください$HOME/tmp
。
スクリプトは、削除されたファイルをtmp
ディレクトリに移動し、アクセス時間が 7 日後であれば、次回削除スクリプトが実行されたときにそれらを削除します (ディレクトリの半自動クリーンアップ$HOME/tmp
)。