sabato 16 aprile 2011

Un cestino per rm

Il comando rm (come già detto qui) non usa un cestino per i file cancellati e va usato sempre con cautela. Vi propongo un piccolissimo script che aggiunge un nuovo comando alla vostra shell, l'ho chiamato srm e sta per secure rm. Il comando crea nella home dell'utente un cestino per i file cancellati con il comando srm, potete crearlo aprendo l'editor con il comando sudo mousepad /usr/bin/srm e scrivendo:
#!/bin/bash
TRASH=$HOME/Trash
mkdir $TRASH &> /dev/null
while [ ! -z "$1" ]
do
mv "$1" $TRASH
shift
done
Per poter eseguire i comandi dovete assegnare i permessi con sudo chmod +x /usr/bin/srm. Lo script provvede a spostare i file nel cestino (la cartella Trash/) finché esiste ancora un argomento passato al comando (il path o il nome di un file), quindi incrementa l'indice al prossimo argomento e ripete la condizione prevista dal ciclo. Qualcuno potrebbe pensare: perché non creare un alias per rm, ad esempio con il comando alias rm='srm'?
La risposta è semplice, se create l'alias detto sopra poi non potete più cancellare i file nel cestino con il comando rm (che altrimenti invocherebbe se stesso e quindi lo script visto sopra, generando un errore). Pertanto, se decidete di usare questa soluzione ricordatevi di cancellare i file con il nuovo comando srm.
Dimenticavo, se avete creato l'alias per il comando rm potete annullarne gli effetti con il comando unalias rm.

Nessun commento:

Posta un commento