rmで「やっちまった」を防ぐために(rmでゴミ箱へ)

今のところ「やっちまった」的なことは無いけど念の為。

皆さんよくやってらっしゃる rm でゴミ箱に移動してしまうという方法。GNU coreutils をインストールしていると gmv が入っているらしい。調べてみると入ってた。マニュアル読んでみて、こりゃ便利。移動先のディレクトリを固定できて、同一ファイル名があったら適当に名前をつけてくれる(--backupnumberedt を指定すると番号付き)。

~/.bashrc
orm(){
    command rm "$@"
}
rm(){

    if [ -x "$(which gmv)" ] ; then

        gmv -vf --backup=t --target-directory=${HOME}/.Trash "$@"

    else

        echo "gmvがインストールされていないためmvを使用します"
        local target="${HOME}/.Trash/rm_$(date +%m-%d-%Y)/$(date +%Hh%Mm%Ss)/"
        mkdir -p "${target}" && mv -vf "$@" "${target}"

    fi
}

元々の rmorm(original rm)としておいた。

gmv がインストールされていないときのために mkdirrm_10-08-2012/00h00m00s といったディレクトリを作成し、そこに移動するようにした。フォルダ名は削除したものの中に日付名のフォルダがあると混在してしまうため rm_ を追加。時間が 00h00m00s なのはハイフンよりもこちらの方がわかりやすかったから(「0時から〜」と考えれば間違いではないはずw)。階層が深くなるのは find コマンドやら[Option+Right]でなんとかなるでしょ。

でも結局、普段は gmv が使われるから MacPorts をアンインストールした時以外出番は来ない。

Trackback