要約
- 間違えて
rm
コマンドでファイルを削除してしまうミスを防ぐために、簡単な関数をシェルの設定ファイルに書いてみました。処理内容としては、mv
コマンドで/tmp
に移動させているだけです。 - おまけとして、この
rm
コマンドで削除したファイルを復元するrs
関数も書いてみました。
はじめに
rm
コマンドでファイルを削除するとき、タイプミスなどでうっかり消したくないファイルまで削除していまう時があります。運が良ければそのファイルを復元できるみたいですが、そうでなければ...あまり考えたくありませんね。
というわけで、できるだけ簡単にその操作ミスを防ぐことができる方法を考えてみました。(何か間違いがあればコメントでご指摘いただけるとありがたいです!)
どうすれば良いか?
以下の関数をシェルの設定ファイルに追記すれば良いです。zsh
を使っているなら、.zshrc
に追記してください。
関数の処理内容としては、mv
コマンドを呼び出し、/tmp
ディレクトリに移動させているだけです。引数が複数の場合でも対応したかったので、for
文を使って一つずつ移動させています。*
で引数を渡すと警告が出ますが、RM_STAR_SILENT
で抑えることができます。お好みで設定してください。
/tmp
ディレクトリのファイルは、一定期間経過すると削除されるので、移動先に選びました。
setopt RM_STAR_SILENT
rm () {
for e in "$@"
do
mv "$e" /tmp
done
}
ついでに、このrm
コマンドで削除したファイルを復元するrs
関数も書いてみました。restoreから名前をとってみました。削除するrm
と復元するrs
でなかなか綺麗な名前な気がします。処理内容は上記と似ているので割愛します。
rs () {
for e in "$@"
do
mv /tmp/"$e" .
done
}
まとめ
- 操作ミスしてもすぐに復元できる
rm
関数を書いてみました - もしかしたら既に誰かが考えているかもしれませんが、意外と使える関数だと思います
おしまい