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.