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-trash
e restore-trash
comandi, che è possibile utilizzare così come sono o fare rm
un alias di trash
(vedi sotto).
La semantica del trash
comando è un po 'diversa rispetto allo standard rm
: non richiede -r
flag 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 trash
a 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 rm
comando 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?
trash
di comportarsi in modo più simile rm
all'eliminazione delle directory. Questo può essere importante per alcuni script che prevedono rm
di funzionare in questo modo, ad esempio. Ho aggiornato la risposta.
libtrash (pacchetto libtrash in Ubuntu) sembra fare questo, ma non l'ho mai usato.