$ rm *~
をやろうとして
$ rm *
をやってしまうと泣けます.
rmには常にiオプションを付けたり,rmの代わりに常にmvを使えばいいのですがはっきりいってミスるときはミスります.

そこでrmの代わりにゴミ箱へmvしてくれるシェルスクリプト(trash.sh)
#!/bin/sh
TRASH_DIR=~/.Trash/

while [[ $1 = -* ]]
do
    shift
done

if [ $# -eq 0 ]
then
    echo "usage: $0 file ..."
    exit 1
fi

for file in $@
do
    if [ ! -e $file ]
    then
        echo "$0: $file: No such file or directory"
        exit 1
    fi
done
dst_dir=$TRASH_DIR$(date +%Y%m%d-%H%M%S)
if [ -e dst_dir ]; then :
else
    mkdir "$dst_dir"
fi
echo "trash.sh: $@ -> $dst_dir"
mv $@ $dst_dir

簡単な処理の流れとしては
  1. オプションを無視する(-Rや-fなど)
  2. 引数をチェックする(ファイルが存在するかどうか)
  3. 移動先フォルダを作成(現在の年月日-時分秒)
  4. ファイルを移動

trash.shを適当な場所に置いて実行権限を与えて,
.bash_profileとか.bashrcとか.profileあたりに
alias rm='~/hoge/trash.sh'
と書いておけばrmでミスしてもとりあえずは安心.

オリジナルのrmを使いたい場合は
$ \rm hoge


【より多機能なrm代替プログラム】
trash-cli
http://code.google.com/p/trash-cli/
rmtrash (MacOS限定?)
http://www.nightproductions.net/