0
0

More than 1 year has passed since last update.

うっかりrmを防ぐために

Posted at

要約

  • 間違えて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関数を書いてみました
  • もしかしたら既に誰かが考えているかもしれませんが、意外と使える関数だと思います

おしまい

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0