Ubuntu のゴミ箱を rm と連動させてより安全に

rm はファイルやディレクトリ完全に消し去るのでかなり危険.オプションで確認の問い合わせをすることもできるが,普段はそんな面倒くさいことはしないので間違って実行してしまった経験は誰にでもあると思われる.そこで,より安全にrmを使うために,Ubuntu(Gnome)のゴミ箱を利用する.完全に削除せずに,一旦ゴミ箱に入れる.

trash-cliをインストール

trash-cliコマンドラインからゴミ箱を操作するツール.特徴はなんと言ってもUbuntuのゴミ箱と連動できること.独自にゴミ箱を作ったりしていた人にはこの素晴らしさがわかるはず.
aptでインストールする.

% sudo aptitude install trash-cli

使い方

使い方は簡単.以下の通り.

trash ファイル名 ファイルを削除する
list-trash ゴミ箱の中身を見る
restore-trash ゴミ箱からファイルを復元する
empty-trash ゴミ箱を空にする
empty-trash 日数 指定した日数以前のファイルをゴミ箱から削除する

ここで,rm と連動するために trash コマンドを置き換える.
~/.bashrcに以下を追記 (zshを使っていれば~/.zshrc).

alias rm='trash'

記述したら以下のコマンドで反映させる (zshを使っていればここも当然~/.zshrc).

% source ~/.bashrc

ディレクトリを削除するときも -r を付けなくても良い.便利.
また,どうしても rm 自体を使いたくなったら以下の方法で呼び出せばよい.

% \rm

または

% /bin/rm

以前まで使っていた方法

ちなみに,以前は下記を参考にゴミ箱を実装していた.
~/.zshrc に以下を記述.

function rm() {
    if [ -d ~/.trash ]; then
        local DATE=`date "+%y%m%d-%H%M%S"`
        mkdir ~/.trash/$DATE
        for i in $@; do
            if [ -e $i ]; then
                mv $i ~/.trash/$DATE/
            else 
                echo "$i : not found"
            fi
        done
    else
        /bin/rm $@
    fi
}
UNIX今日の技 - UNIX今日の技/シェル

使い方は,

% mkdir ~/.trash

してやって,あとは rm したら ~/.trash 以下に日付のディレクトリを作って放り込んでくれる.
最初の trash-cli を使う方が便利だけど,デスクトップ環境がない場合はこの方法を使うと良いかも.


(2011/01/16追記)
参考URLが消えているみたいなので,ゴミ箱を空にするコマンドは以下を参照.
Ubuntuで指定した日数より前のファイルをまとめて削除する - Everyday Programmer