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)
Commenti Lasciati