Come esseri umani dovremmo accettare errori come:rm -rf * accadrebbe ! Dicendo "Prevenire è meglio che curare", seguiremo le migliori pratiche durante l'esecuzione di tali comandi critici. Qui ti mostreremo come evitare tali cancellazioni accidentali sulle tue macchine Linux. Tuttavia, se hai eliminato i file e desideri recuperarli, segui: come recuperare i dati eliminati !
1. Non usare mai rm -rf ./* (consigliato)
In pratica, invece di ./ all'inizio di un percorso usa semplicemente *. Le barre in realtà non aggiungono alcun valore al comando e creeranno solo confusione. Il comando sopra può essere riscritto meglio come:
rm -rf *
2. Usa "–preserve-root" come opzione per rm (consigliato)
Il comando rm include un'opzione “–preserve-root” per impedire la cancellazione accidentale della directory principale, ma questo comportamento non è l'impostazione predefinita nelle macchine meno recenti. Quindi aggiungi semplicemente quanto segue a /etc/bashrc e /etc/profile d'ora in poi:
alias rm=”rm -–preserve-root”
Nota:se desideri ancora eliminare / puoi utilizzare l'attributo –no-preserve-root
3. Se si desidera impedire l'eliminazione di directory importanti? (Consigliato)
Crea un file chiamato -i in quella directory e per farlo segui il comando seguente:
touch -- -i or touch ./-i
Ora prova rm -rf *:
Mon Oct 21>$pwd /tmp/demo Mon Oct 21>$touch {1..4} Mon Oct 21>$touch -- -i Mon Oct 21>$ls 1 2 3 4 -i Mon Oct 21>$rm -rf * rm: remove regular empty file `1'? y rm: remove regular empty file `2'? y rm: remove regular empty file `3'? y rm: remove regular empty file `4'? y
Il comando precedente si traduce in:rm -rf -i *, in cui -i è per eliminare i file in modo interattivo. Quindi richiede l'eliminazione di ogni file!
4. Usa safe-rm (consigliato)
Safe-rm è uno strumento di sicurezza inteso a prevenire la cancellazione accidentale di file importanti sostituendo /bin/rm con un wrapper, che controlla gli argomenti forniti rispetto a una lista nera configurabile di file e directory che non dovrebbero mai essere rimossi.
Gli utenti che tentano di eliminare uno di questi file o directory protetti non potranno farlo e verrà invece mostrato un messaggio di avviso:
#rm -rf /etc Skipping /etc
5. Come in Windows, puoi creare una directory cestino e spostare tutti i file eliminati nella directory cestino. (Non consigliato)
Questa non è una buona pratica, poiché continui a eliminare, questi file/cartelle vengono ancora accumulati nella directory del cestino e devi dedicare tempo all'eliminazione anche di quelli. Tuttavia, se desideri farlo, eccolo qui:Crea un file del.sh con il seguente contenuto in /usr/local/bin/.
#!/bin/bash DIRECTORY="$HOME/.Trash"; if [ ! -d $DIRECTORY ] ; then echo "Directory $DIRECTORY doesn't exist"; echo "Creating the .Trash directory....."; mkdir $DIRECTORY; fi mv "$@" $HOME/.Trash
crea un alias per rm nel tuo /etc/bashrc o /etc/profile
alias rm="/usr/local/bin/del.sh"
6. Crea uno script bash per avvisarti quando esegui il comando rm? (Consigliato)
Crea un file del.sh con il seguente contenuto in /usr/local/bin/.
#!/bin/bash # Copyright (c) 13th Aug 2014 Focus4Infotech # All Rights Reserved # Function of this script is to avoid unknowing deletion # of files, which is hard to recover. This script # doesn't backup, instead it just warns and upon user # confirmation, it removes the files. # Authors : Focus4infotech.com echo " __ ___ _ ___ ___ _ _ _ ___ ___ _ _ ___ ___ "; echo "| \ |___ | |___ | | |\ | | __ |___ | | |___ [__ "; echo "|__/ |___ |___ |___ | | | \| |__] | | |___ |___ ___] ...."; echo " __ ___ ___ __ ___ ___ ___ _ _ _ "; echo " |__] |___ | |__| |__/ |___ |___ | | | "; echo " |__] |___ |___ | | | \ |___ | |__| |___ "; echo " ___ __ _ _ ___ _ _ _ _ _ ___ _ _ _ _ "; echo " | | | |\ | | | |\ | | | |___ \_/ / |\ | "; echo " |___ |__| | \| | | | \| |__| |___ | / | \| "; read -p "" choice case "$choice" in y|Y ) rm "$@";; n|N ) echo "Exiting without any change.....";exit 0;; * ) echo "Exiting without any change......";exit 0;; esac
crea un alias per rm nel tuo /etc/bashrc o /etc/profile
alias rm="/usr/local/bin/del.sh"