Ubuntu : spostare i files nel cestino da riga di comando

Jessica Lambiase
22 feb 2010

E’ noto a chiunque usi la shell di Linux che, a meno che non vi siano particolari accorgimenti, i comandi rm e rm -r (rispettivamente per eliminare un file ed una directory) non usano il passaggio intermedio per il cestino,ma eliminano i files definitivamente. E questo, spesso, può portare a delle perdite dovute ad errori di distrazione. Sto per spiegarvi come fare in modo che i comandi suddetti spostino i files nel cestino, utilizzando uno script scritto da grizzly.

Innanzitutto installiamo il pacchetto trash-cli (che permette di tenere traccia di alcune informazioni sui files eliminati)

apt-get install trash-cli

Installiamo lo script di grizzly in questo modo:
1 – Scriviamo nel terminale

sudo gedit /usr/bin/trash-rm

2 – All’interno del file, scriviamo il testo dello script di grizzly:

#!/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[@]}"

3 – Salviamo il file e chiudiamo gedit; dopodichè, da terminale,diamo i permessi di esecuzione al nuovo file:

sudo chmod a+x /usr/bin/trash-rm

4 – Modifichiamo il file di configurazione della shell. Scriviamo a terminale:

sudo gedit ~/.bashrc

5 – Alla fine del file aggiungiamo la seguente riga:

alias rm="trash-rm"

6 – Rendiamo effettive le modifiche con il seguente comando:

source ~/.bashrc

Fatto! Da questo momento in poi tutti i files eliminati con rm (e le directory eliminate con rm -r) passeranno per il cestino. E’ possibile adesso gestire il cestino anche direttamente da terminale con questi tre comandi:

  • empty-trash (svuota il cestino)
  • list-trash (elenca i files presenti nel cestino)
  • restore-trash (ripristina nelle loro posizioni originali i files presenti nel cestino)

Articoli molto simili