Sebagai manusia kita harus menerima kesalahan seperti :rm -rf * akan terjadi ! Seperti mengatakan "Mencegah lebih baik daripada mengobati" kita akan mengikuti praktik terbaik selama pelaksanaan perintah kritis tersebut. Di sini kami akan menunjukkan kepada Anda cara menghindari penghapusan yang tidak disengaja pada mesin Linux Anda. Masih jika Anda telah menghapus file dan ingin mengambilnya kembali, ikuti: bagaimana Anda dapat mengambil data yang dihapus !
1. Jangan pernah menggunakan rm -rf ./* (Disarankan)
Sebagai latihan, alih-alih ./ di awal jalur, gunakan saja *. Garis miring benar-benar tidak menambah nilai pada perintah dan hanya akan menyebabkan kebingungan. Perintah di atas dapat ditulis ulang dengan lebih baik sebagai :
rm -rf *
2. Gunakan “–preserve-root” sebagai opsi untuk rm (Disarankan)
Perintah rm menyertakan opsi “–preserve-root” untuk mencegah penghapusan direktori root secara tidak sengaja, tetapi perilaku itu bukan default di mesin lama. Jadi cukup tambahkan yang berikut ini ke /etc/bashrc dan /etc/profile mulai sekarang:
alias rm=”rm -–preserve-root”
Catatan:Jika Anda masih ingin menghapus / Anda dapat menggunakan atribut –no-preserve-root
3. Jika Anda ingin mencegah penghapusan direktori penting? (Disarankan)
Buat file bernama -i di direktori itu dan untuk melakukannya ikuti perintah di bawah ini:
touch -- -i or touch ./-i
Sekarang coba 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
Perintah di atas diterjemahkan menjadi:rm -rf -i *, di mana -i adalah untuk menghapus file secara interaktif. Jadi itu meminta untuk setiap penghapusan file !
4. Gunakan safe-rm (Disarankan)
Safe-rm adalah alat keamanan yang dimaksudkan untuk mencegah penghapusan file penting secara tidak sengaja dengan mengganti /bin/rm dengan pembungkus, yang memeriksa argumen yang diberikan terhadap daftar hitam file dan direktori yang dapat dikonfigurasi yang tidak boleh dihapus.
Pengguna yang mencoba menghapus salah satu file atau direktori yang dilindungi ini tidak akan dapat melakukannya dan sebagai gantinya akan ditampilkan pesan peringatan:
#rm -rf /etc Skipping /etc
5. Seperti di windows, Anda dapat membuat direktori tempat sampah dan memindahkan semua file yang dihapus ke direktori tempat sampah. (Tidak disarankan)
Ini bukan praktik yang baik, karena Anda terus menghapus, file/folder ini masih terakumulasi di direktori tempat sampah dan Anda perlu meluangkan waktu untuk menghapusnya juga. Masih jika Anda ingin melakukannya, ini dia:Buat file del.sh dengan konten berikut di bawah /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
buat alias untuk rm di /etc/bashrc atau /etc/profile
your Andaalias rm="/usr/local/bin/del.sh"
6. Buat skrip bash untuk memperingatkan Anda ketika Anda menjalankan perintah rm? (Disarankan)
Buat file del.sh dengan konten berikut di bawah /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
buat alias untuk rm di /etc/bashrc atau /etc/profile
your Andaalias rm="/usr/local/bin/del.sh"