Risposte:
C'è una ricetta su webupd8.org per questo. Per prevenire la putrefazione dei link, ecco le informazioni importanti (con alcune aggiunte).
sudo apt-get install trash-cli
Questo installerà trash, empty-trash, list-trashe restore-trashcomandi, che è possibile utilizzare così come sono o fare rmun alias di trash(vedi sotto).
La semantica del trashcomando è un po 'diversa rispetto allo standard rm: non richiede -rflag per poter eliminare le directory. Se questo ti dà fastidio, webupd8.org ti propone il seguente script, che puoi inserire nel tuo PERCORSO e chiamarlo 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[@]}"
In Ubuntu 12.04 e versioni successive, l'ultimo comando nello script dovrebbe essere trash-put "${cmd[@]}"invece di trash "${cmd[@]}"(poiché il comando è cambiato da trasha trash-put).
Quindi rendere eseguibile lo script:
chmod +x trash-rm
Una volta che lo hai in qualche directory nel tuo PATH, aggiungi un alias al tuo ~ / .bashrc, che farà bash per invocare il tuo script invece del rmcomando effettivo :
alias rm="trash-rm"
Come sottolinea correttamente djeikyb, il trucco dell'alias .bashrc funzionerebbe solo per l'utente il cui .bashrc è stato modificato, e solo nella sessione terminale bash.
E questo dovrebbe essere tutto.
alias="trash"). Sai qual è il vantaggio di avere la sceneggiatura?
trashdi comportarsi in modo più simile rmall'eliminazione delle directory. Questo può essere importante per alcuni script che prevedono rmdi funzionare in questo modo, ad esempio. Ho aggiornato la risposta.
libtrash (pacchetto libtrash in Ubuntu) sembra fare questo, ma non l'ho mai usato.