Thursday, October 23, 2008

Linuxでゴミ箱

Linux では、ゴミ箱にファイルを移動するコマンドがない。rm コマンドを使うと、すぐにシステム上から削除されてしまい、その後、2度とファイルを復旧できない。もしかしたら、復旧する方法があるのかもしれないが、私は、その方法を知らない。

間違って rm コマンドを実行してしまったときに後悔するので、rm コマンドを実行すると、ファイルがゴミ箱に移動するように変更した。

まず、ゴミ箱にファイルを移動する関数を書き、その関数を rm コマンドの alias とすることで、これを実現した。作成した関数は、trash という関数で、alias rm='trash' として、rm コマンドで trash 関数が呼ばれるようにした。

以上のことを、以下のように、/etc/bashrc に記述した。


function trash() {
for file in $@
do
mv $file /tmp/trash
done
}

alias rm='trash'


これで OK!

但し、これだと、/tmp/trash が肥大してくるので、時々、/tmp/trash の中身を削除するようにしよう。alias した rm コマンドではなく、通常の rm コマンドでファイルを削除したい場合は、rm の前にバックスラッシュ (\) をつけて、rm コマンドを実行すればよい。これで、/tmp/trash 内のファイルを削除できる。


$ \rm hoge.txt

No comments:

Post a Comment