Windows使う場合はファイルを削除してしまってもゴミ箱から戻せるからいいという考えがある。(というか戻せるようにゴミ箱に入れる)
Linux等でrmした場合ファイルを復活させることはできないので気をつけなければならない。
iオプションで確認をとるようにするのも手だがそういう時に限って確認でもyを押してしまっている。
twitterでチラッと見つけたものを思い出したのでMacで設定をしてみた。
※ちなみに~/.Trashはゴミ箱
元ネタ(ありがとうございます!)
設定
alias rm='mv -f --backup=numbered --target-directory ~/.Trash'
実行するとそんなオプションねーよと返される
mv: illegal option -- -
man mvみてみるとオプションがこれしかない。
-f Do not prompt for confirmation before overwriting the destination path. (The -f option overrides any previous -i or -n options.) -i Cause mv to write a prompt to standard error before moving a file that would overwrite an existing file. If the response from the standard input begins with the character `y' or `Y', the move is attempted. (The -i option overrides any previous -f or -n options.) -n Do not overwrite an existing file. (The -n option overrides any previous -f or -i options.) -v Cause mv to be verbose, showing files after they are moved.
GNU coreutilsインストール
GNU coreutilsを入れるとGNU Linux版のコマンドが使えるようになるらしいので入れる
sudo port install coreutils
variants
port variants coreutils coreutils has the variants: universal: Build for multiple architectures with_default_names: Install files without 'g' prefix, use with extreme caution
各コマンドはgが先頭についた状態(gls等)でインストールされるがwith_default_namesをつけると標準のままインストールしてくれるとのこと。
標準のが置き換わるのが気持ち悪いのでそのままインストール
インストールされたgmvをaliasにあててみる
alias rm='gmv -f --backup=numbered --target-directory ~/.Trash'
実際にrmコマンドを動作
hogeというファイルを順番に削除してみた
$ cd ~/.Trash $ ls | grep hoge hoge hoge.~1~ hoge.~2~ hoge.~3~
これでビクビクしながらrm使うことがなくなり気軽につかえる!。
当然mvにaliasしてるのでrmのオプションは使うことはできない。(癖でやる)
ちなみに本当にrmを実行したくなったら先頭に\をつけてaliasを無効にする。