Le migliori pratiche per alias il command rm e renderlo più sicuro

Qualche tempo fa ho cancellato erroneamente la cartella di casa perché ho eseguito un rm -rf * sul terminal sbagliato, la cui directory di lavoro era la cartella di casa!

Vorrei avere un alias per il command rm , ma non era il caso.

Ora, ho intenzione di fare uno script come alias per rm .

Avete delle migliori pratiche da suggerire?

Grazie.

Se si desidera un rm personalizzato, non chiamarlo rm ma un nome di te, myrm , delete o qualsiasi altra cosa.

L'alias rm='rm -i' è un orrore perché dopo un po 'di utilizzo, si prevede che rm ti richieda per impostazione predefinita prima di rimuovere i file. Naturalmente, un giorno lo gestinetworking con un account che non ha l'alias e prima di capire cosa sta succedendo, è troppo tardi.

In each caso, un buon modo per essere preparati per la perdita di file o la corruzione sta facendo backup.

Un'alternativa veloce che ti protegge dall'eliminazione accidentale di file o sovrascrittura sta utilizzando un file system che support snapshot illimitati come ZFS. Se le istantanee frequenti vengono eseguite automaticamente, è ansible ripristinare i file nello stato in cui sono stati durante l'ultima istantanea prima dell'incidente.

Suggerisco di distriggersre rm come questo

 alias rm='echo "rm is disabled, use remove or trash or /bin/rm instead."' 

Quindi puoi creare un proprio alias sicuro, ad esempio

 alias remove='/bin/rm -irv' 

o utilizzare invece il trash .

Potresti provare a usare il trash invece. Basta ricordarsi di vuotarlo una volta in un momento …

Senza wherer cambiare profilo di tutti, è ansible posizionare il file chiamato -i nella directory.

 # touch -- -i # ll total 0 -rw-r--r-- 1 root users 0 Jan 26 19:24 files drwxr-xr-x 2 root users 40 Jan 26 19:24 folder_of_power -rw-r--r-- 1 root root 0 Jan 26 19:25 -i -rw-r--r-- 1 root users 0 Jan 26 19:24 importnt -rw-r--r-- 1 root users 0 Jan 26 19:24 very # rm -rf * rm: remove regular empty file `files'? 

Utilizzo il seguente script.

 #!/bin/sh trash=$HOME/tmp mv "[email protected]" $trash nohup find "$trash" -type f -atime +7 -exec /bin/rm '{}' \; 2>&1 & 

Se elimini accidentalmente un file, ripristinarlo da $HOME/tmp .

Lo script sposta i file eliminati in una tmp e li elimina la prossima volta che viene eseguito lo script di eliminazione se il tempo di accesso è di 7 giorni più tardi (pulizia semiautomatica della $HOME/tmp ).

Nel tuo profilo,

 alias rm="rm -i" 

Uno script chiamato d , con contenuto mv $* /tmp .

edit: Questa è una ctriggers idea; vedi sotto. Attualmente ho l' alias d='mv -t /tmp' nel mio .profile invece.

Questo codice bash aggiunge la function rm al file di configuration ~/.bash_profile . Dopo aver eseguito questa operazione, se si scrive il rm file , si sposterà il file in /tmp

 cat << EOF >> ~/.bash_profile rm () { mv $1 /tmp } EOF