Há uma receita no webupd8. org para isso. Para evitar a perda de links, aqui está a informação importante (com alguns acréscimos).
sudo apt-get install trash-cli
Isso instalará os comandos trash , empty-trash , list-trash e restore-trash , que você pode usar como está ou tornar rm um alias de trash (veja abaixo).
A semântica do comando trash é um pouco diferente do padrão rm - ele não exige -r flag para poder excluir diretórios. Se isso incomodar você, o webupd8.org propõe o seguinte script, que você pode colocar em seu PATH e chamá-lo de trash-rm :
#!/bin/bash
# command name: trash-rm
shopt -s extglob
recursive=1
declare -a cmd
((i = 0))
for f in "$@"; do
case "$f" in
(-*([fiIv])r*([fiIv])|-*([fiIv])R*([fiIv]))
tmp="${f//[rR]/}"
if [ -n "$tmp" ]; then
#echo "$tmp == $tmp"
cmd[$i]="$tmp"
((i++))
fi
recursive=0
;;
(--recursive) recursive=0
;;
(*)
if [ $recursive != 0 -a -d "$f" ]; then
echo "skipping directory: $f"
continue
else
cmd[$i]="$f"
((i++))
fi
;;
esac
done
trash "${cmd[@]}"
No Ubuntu 12.04 e posterior, o último comando no script deve ser trash-put "${cmd[@]}" em vez de trash "${cmd[@]}" (conforme o comando foi alterado de trash para trash-put ).
Em seguida, torne o script executável:
chmod +x trash-rm
Depois de tê-lo em algum diretório em seu PATH , adicione um alias ao seu ~ / .bashrc, que fará o bash invocar seu script em vez do comando rm real:
alias rm="trash-rm"
Como djeikyb corretamente aponta, o truque de alias .bashrc só funciona para o usuário cujo .bashrc é modificado, e somente na sessão de terminal bash.
E deveria ser isso.