“rm” Galeotto? Niente paura: Ecco il cestino per la tua bash!!!

Quante volte avrete detto:

porca misera, ho cancellato dei file importantissimi!!! Adesso come li recupero???

Se li avete cancellati via interfaccia grafica, nessun problema… li avete nel cestino…

Ma se li avete cancellati via linea di comando???

Stavo lavorando alla mia tesi, ed ero anche arrivato ad un buon punto, quando -PORCA MISERIACCIA- un “rm” malandrino mi ha cancellato dei file importantissimi!!!
SCONFORTO E TERRORE !!!
Per questo mi sono deciso a scrivere questo piccolo scriptino che crea un “cestino” anche per i files cancellati da riga di comando, per intenderci, con il solito “rm” …

eccolo:

no-rm.sh

#!/bin/bash
touch .tmpListaFinale # file temporaneo di appoggio, metterò li la lista di switch legali del mio fake-rm
for comandi in $*
do
if [ $comandi != '-rf' ]
then
echo -n $comandi >> .tmpListaFinale # se è diverso da "-r" lo metto nella lista
echo -n " ">>.tmpListaFinale # poi metto uno spazio
else
echo -n " -f ">>.tmpListaFinale
fi
done
echo "eseguo: mv" `cat .tmpListaFinale` nel cestino# echo di debug
mv `cat .tmpListaFinale` ~/.Trash # rimuovo il file temporaneo

Veramente semplice, no?

Non fa altro che leggere il vostro comando, controllare che non ci siano dei “-r” tra gli switch (per la cancellazione ricorsiva, il comando mv non ha questo switch, e darebbe errore) e trasforma il tutto in un bel mv…
Ovvero sposta i files nel cestino (si, proprio così, nel cestino del vostro desktop) !!!

Diamo i permessi di esecuzione allo script:
chmod +x no-rm.sh

Adesso non ci resta che fare un bell’alias …
nano ~/.bashrc

in maniera tale che ogni volta che scriviamo “rm” invece mandi inesecuzione il nostro script:
alias rm='/home/$USER/no-rm.sh'

Ed il gioco dovrebbe essere fatto :D

N.B. E’ ovvio che questo script sarebbe potuto essere scritto meglio, ma il mio intento era solo quello di sbrigarmi nel farlo e soprattutto di rendere trasparente all’utente l’utilizzo dell’alias.
In ogni caso funziona perfettamente :D

Altri script simili:

http://poetry.freaknet.org/poetryminihowto/buttiamo_linux_ram
http://www.debianitalia.org/modules/wfsection/article.php?articleid=78
http://www.lugnu.it/index.php?option=com_content&task=view&id=73&Itemid=2

Popularity: 30% [?]

Vota questo post:


    Post Simili:

    2 Commenti so far »

    1. benfe said,

      Wrote on Marzo 21, 2007 @ 9:54 am

      beh, funziona bene solo se cancelli un file sullo stesso device dove è montata la home…

      Se pero’ cancelli dei file su un device diverso (ad es. un disco usb) se cancelli svariati GB potrebbe essere un problema!

      Ci vorrebbe un bel prompt per i file grandi…

    2. RollsAppleTree said,

      Wrote on Marzo 22, 2007 @ 12:39 pm

      no… funziona in ogni caso…
      Infatti il percorso è un percorso assoluto

    Comment RSS · TrackBack URI

    Lascia un Commento

    Nome: (Richiesto)

    E-mail: (Richiesta)

    Sito web:

    Commento: