Jako lidé bychom měli přijmout chyby jako:rm -rf * by se stalo ! Když říkáme „Prevence je lepší než léčba“, budeme se při provádění takových kritických příkazů řídit osvědčenými postupy. Zde vám ukážeme, jak se vyhnout takovým nehodovým smazáním na vašich počítačích se systémem Linux. Přesto, pokud jste smazali soubory a chcete je obnovit, postupujte takto: jak můžete obnovit smazaná data !
1. Nikdy nepoužívejte rm -rf ./* (doporučeno)
Pro praxi použijte místo ./ na začátku cesty *. Lomítka skutečně nepřidávají příkazu žádnou hodnotu a způsobí pouze zmatek. Výše uvedený příkaz lze lépe přepsat jako :
rm -rf *
2. Jako možnost rm použijte „–preserve-root“ (doporučeno)
Příkaz rm obsahuje volbu „–preserve-root“, která zabraňuje náhodnému smazání kořenového adresáře, ale toto chování není na starších počítačích výchozí. Od této chvíle jednoduše přidejte do /etc/bashrc a /etc/profile následující:
alias rm=”rm -–preserve-root”
Poznámka:Pokud přesto chcete smazat / můžete použít atribut –no-preserve-root
3. Chcete-li zabránit smazání důležitého adresáře? (Doporučeno)
V tomto adresáři vytvořte soubor s názvem -i a postupujte podle níže uvedeného příkazu:
touch -- -i or touch ./-i
Nyní zkuste 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
Výše uvedený příkaz se překládá na:rm -rf -i *, kde -i znamená interaktivní mazání souborů. Takže to vyzve ke každému smazání souboru!
4. Použijte safe-rm (doporučeno)
Safe-rm je bezpečnostní nástroj, který má zabránit náhodnému smazání důležitých souborů nahrazením /bin/rm obalem, který kontroluje dané argumenty proti konfigurovatelné černé listině souborů a adresářů, které by nikdy neměly být odstraněny.
Uživatelé, kteří se pokusí smazat jeden z těchto chráněných souborů nebo adresářů, to nebudou moci udělat a místo toho se jim zobrazí varovná zpráva:
#rm -rf /etc Skipping /etc
5. Stejně jako v systému Windows můžete vytvořit adresář koše a přesunout všechny smazané soubory do adresáře koše. (Nedoporučuje se)
To není dobrý postup, protože stále mažete, tyto soubory/složky se stále hromadí v adresáři koše a musíte trávit čas jejich mazáním. Pokud byste to přesto chtěli udělat, zde je:Vytvořte soubor del.sh s následujícím obsahem v /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
vytvořte alias pro rm ve vašem /etc/bashrc nebo /etc/profile
alias rm="/usr/local/bin/del.sh"
6. Vytvořte bash skript, který vás upozorní, když spustíte příkaz rm? (Doporučeno)
Vytvořte soubor del.sh s následujícím obsahem v /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
vytvořte alias pro rm ve vašem /etc/bashrc nebo /etc/profile
alias rm="/usr/local/bin/del.sh"