Saya hanya berlari rm -rf /*
secara tidak sengaja, tapi maksud saya rm -rf ./*
(perhatikan bintang setelah tebasan).
alias rm='rm -i'
dan --preserve-root
secara default tidak menyelamatkan saya, jadi apakah ada perlindungan otomatis untuk ini?
Saya tidak melakukan root dan membatalkan perintah dengan segera, tetapi ada beberapa izin santai di suatu tempat atau sesuatu karena saya perhatikan bahwa Bash prompt saya sudah putus. Saya tidak ingin mengandalkan izin dan tidak menjadi root (saya bisa membuat kesalahan yang sama dengan sudo
), dan saya tidak ingin mencari bug misterius karena ada satu file yang hilang di suatu tempat dalam sistem, jadi, backup dan sudo
bagus , tapi saya ingin sesuatu yang lebih baik untuk kasus khusus ini.
Tentang berpikir dua kali dan menggunakan otak. Sebenarnya saya menggunakannya! Tapi saya menggunakannya untuk menyelesaikan beberapa tugas pemrograman kompleks yang melibatkan 10 hal berbeda. Saya tenggelam dalam tugas ini cukup dalam, tidak ada kekuatan otak yang tersisa untuk memeriksa bendera dan jalur, saya bahkan tidak berpikir dalam hal perintah dan argumen, saya pikir dalam hal tindakan seperti 'direktori kosong saat ini', bagian yang berbeda dari otak saya menerjemahkannya ke perintah dan terkadang membuat kesalahan. Saya ingin komputer memperbaikinya, setidaknya yang berbahaya.
rm -rf . /mydir
alih - alihrm -rf ./mydir
dan membunuh direktori apa pun yang Anda masuki. Saya menemukan ini terjadi lebih sering.rm
bukan pistol, ini adalah program komputer, bisa jadi cukup pintar untuk menentukan bahwa pengguna akan menghapus beberapa file penting dan mengeluarkan peringatan (seperti yang sebenarnya terjadi jika Anda mencoba melakukannyarm -rf /
tanpa bintang).rm
perintah adalah pertanyaan sysadmin yang sah.Jawaban:
Salah satu trik yang saya ikuti adalah memasukkannya
#
di awal sambil menggunakanrm
perintah.Ini mencegah eksekusi tidak sengaja
rm
pada file / direktori yang salah. Setelah diverifikasi, hapus#
dari awal. Trik ini berfungsi, karena dalam Bash, sebuah kata yang dimulai dengan#
menyebabkan kata itu dan semua karakter yang tersisa pada baris itu diabaikan. Jadi perintah itu diabaikan begitu saja.ATAU
Jika Anda ingin mencegah direktori penting, ada satu trik lagi.
Buat file dengan nama
-i
dalam direktori itu. Bagaimana bisa file aneh seperti itu dibuat? Menggunakantouch -- -i
atautouch ./-i
Sekarang coba
rm -rf *
:Di sini
*
akan berkembang-i
ke baris perintah, sehingga akhirnya perintah Anda menjadirm -rf -i
. Dengan demikian perintah akan meminta sebelum dihapus. Anda dapat meletakkan file ini dalam/
,/home/
,/etc/
, dllATAU
Gunakan
--preserve-root
sebagai opsi untukrm
. Dalam paket yangrm
termasuk dalamcoreutils
paket yang lebih baru , opsi ini adalah default.ATAU
Gunakan safe-rm
Kutipan dari situs web:
sumber
-i
file. Hah. Pesta konyol.touch -- -rf
Masalahmu:
Solusinya: Jangan lakukan itu! Sebagai praktik, jangan gunakan
./
di awal jalan. Garis miring tidak menambah nilai perintah dan hanya akan menyebabkan kebingungan../*
artinya sama dengan*
, jadi perintah di atas lebih baik ditulis sebagai:rm -rf *
Inilah masalah terkait. Saya sering melihat ungkapan berikut, di mana seseorang menganggap itu
FOO
diatur ke sesuatu seperti/home/puppies
. Saya melihat ini hanya hari ini sebenarnya, dalam dokumentasi dari vendor perangkat lunak utama.rm -rf $FOO/
Tetapi jika
FOO
tidak disetel, ini akan dievaluasirm -rf /
, yang akan berusaha menghapus semua file di sistem Anda. Garis miring tidak perlu, jadi karena soal latihan jangan menggunakannya.Hal berikut ini akan melakukan hal yang sama, dan kecil kemungkinannya merusak sistem Anda:
rm -rf $FOO
Saya sudah belajar tips ini dengan cara yang sulit. Ketika saya memiliki akun pengguna super pertama saya 14 tahun yang lalu, saya secara tidak sengaja berlari
rm -rf $FOO/
dari dalam shell script dan menghancurkan sebuah sistem. Keempat sysadmin lainnya melihat ini dan berkata, 'Yup. Setiap orang melakukannya sekali. Sekarang, ini media instal Anda (36 floppy disk). Perbaiki itu. 'Orang lain di sini merekomendasikan solusi seperti
--preserve-root
dansafe-rm
. Namun, solusi ini tidak ada untuk semua varian Un * xe dan mungkin tidak berfungsi pada Solaris, FreeBSD & MacOSX. Selain itu,safe-rm
mengharuskan Anda menginstal paket tambahan di setiap sistem Linux yang Anda gunakan. Jika Anda mengandalkansafe-rm
, apa yang terjadi ketika Anda memulai pekerjaan baru dan mereka belumsafe-rm
menginstal? Alat-alat ini adalah penopang, dan jauh lebih baik untuk mengandalkan default yang diketahui dan meningkatkan kebiasaan kerja Anda.sumber
rm -rf *
. Dia selalu mengubah direktori terlebih dahulu, dan menggunakan target tertentu. Alasannya adalah bahwa dia banyak menggunakan sejarah shell, dan dia khawatir bahwa memiliki perintah seperti itu dalam sejarahnya mungkin muncul pada waktu yang salah.rm -rf *
juga dihapus.
dan..
. Saya adalah root, dan ini melintasi direktori yang lebih rendah seperti../../..
, dan sangat destruktif. Saya berusaha sangat berhati-hatirm -rf *
sejak saat itu.rm -rf $FOO
tidak akan membantu jika Anda perlurm -rf $FOO/$BAR
.cd $FOO && rm -rf $BAR
akan membantu, meskipun jauh lebih lama.${FOO:?}
, seperti dalamrm -rf ${FOO:?}/
danrm -rf ${FOO:?}/${BAR:?}
. Ini akan mencegahnya dari menerjemahkanrm -rf /
. Saya punya beberapa info tentang ini dalam jawaban saya di sini .rm -rf *
for for yang berubah secara tidak sengaja ke direktori yang salah dan akhirnya menghapus sesuatu yang lain. Jika saya akan menggunakan target tertentu, itu akan memiliki peluang jauh lebih kecil untuk menghapus hal yang salah.Karena ini di "Serverfault", saya ingin mengatakan ini:
Jika Anda memiliki lusinan atau lebih server, dengan tim admin / pengguna yang besar, seseorang akan
rm -rf
atauchown
salah direktori.Anda harus memiliki rencana untuk membuat cadangan layanan yang terpengaruh dengan MTTR seminimal mungkin.
sumber
Solusi terbaik melibatkan mengubah kebiasaan Anda agar tidak digunakan
rm
secara langsung.Salah satu pendekatan adalah menjalankan
echo rm -rf /stuff/with/wildcards*
terlebih dahulu. Periksa apakah output dari wildcard terlihat masuk akal, kemudian gunakan riwayat shell untuk mengeksekusi perintah sebelumnya tanpaecho
.Pendekatan lain adalah membatasi
echo
perintah untuk kasus-kasus di mana sangat jelas apa yang akan Anda hapus. Daripada menghapus semua file dalam direktori, hapus direktori dan buat yang baru. Metode yang baik adalah mengubah nama direktori yang ada menjadiDELETE-foo
, kemudian membuat direktori barufoo
dengan izin yang sesuai, dan akhirnya menghapusDELETE-foo
. Manfaat samping dari metode ini adalah bahwa perintah yang dimasukkan dalam riwayat Anda adalahrm -rf DELETE-foo
.Jika Anda benar-benar bersikeras menghapus banyak file karena Anda memerlukan direktori untuk tetap (karena itu harus selalu ada, atau karena Anda tidak akan memiliki izin untuk membuatnya kembali), pindahkan file ke direktori yang berbeda, dan hapus direktori itu. .
(Tekan tombol Alt+ itu ..)
Menghapus direktori dari dalam akan menarik, karena
rm -rf .
pendek maka risiko typosnya rendah. Sayangnya, sistem tipikal tidak membiarkan Anda melakukan itu. Anda dapat melakukannyarm -rf -- "$PWD"
sebagai gantinya, dengan risiko kesalahan pengetikan yang lebih tinggi tetapi kebanyakan dari mereka tidak menghapus apa pun. Berhati-hatilah karena ini meninggalkan perintah berbahaya dalam riwayat shell Anda.Kapan pun Anda bisa, gunakan kontrol versi. Anda tidak
rm
, Andacvs rm
atau apa pun, dan itu tidak dapat diurungkan.Zsh memiliki opsi untuk meminta Anda sebelum menjalankan
rm
dengan argumen yang mencantumkan semua file dalam direktori:rm_star_silent
(diaktifkan secara default) meminta sebelum mengeksekusirm whatever/*
, danrm_star_wait
(dinonaktifkan secara default) menambahkan penundaan 10 detik yang tidak dapat Anda konfirmasi. Ini adalah penggunaan terbatas jika Anda bermaksud untuk menghapus semua file di beberapa direktori, karena Anda sudah akan mengharapkan prompt. Hal ini dapat membantu mencegah kesalahan ketik sepertirm foo *
untukrm foo*
.Ada banyak solusi yang beredar yang melibatkan mengubah
rm
perintah. Keterbatasan pendekatan ini adalah bahwa suatu hari Anda akan berada di mesin dengan yang aslirm
dan Anda akan secara otomatis memanggilrm
, aman dengan harapan Anda akan konfirmasi ... dan selanjutnya Anda akan memulihkan cadangan.sumber
mv -t DELETE_ME -- *
sedikit lebih mudah.rm
secara langsung adalah saran yang bagus! Alternatif yang lebih baik lagi adalah menggunakanfind
perintah .find somedir -type f -delete
yang akan menghapus semua filesomedir
tetapi akan meninggalkan direktori dan semua subdirektori.Anda selalu dapat melakukan alias, seperti yang Anda sebutkan:
Anda juga dapat mengintegrasikannya dengan klien twitter commandline untuk memberi tahu teman Anda tentang bagaimana Anda hampir mempermalukan diri sendiri dengan menghapus hard disk Anda dengan
rm -fr /*
sebagai root.sumber
telnet miku.acm.uiuc.edu
?Ya: Jangan bekerja sebagai root dan selalu berpikir dua kali sebelum bertindak.
Juga, lihat sesuatu seperti https://launchpad.net/safe-rm .
sumber
Cara paling sederhana untuk mencegah kecelakaan
rm -rf /*
adalah dengan menghindari semua penggunaanrm
perintah! Bahkan, saya selalu tergoda untuk larirm /bin/rm
untuk menyingkirkan perintah sepenuhnya! Tidak, saya tidak bercanda.Alih-alih menggunakan
-delete
opsifind
perintah , tetapi terlebih dahulu sebelum menghapus file, saya sarankan melihat dulu file apa yang akan Anda hapus:Catatan, dalam versi modern
find
jika Anda meninggalkan nama direktori, itu akan secara implisit menggunakan direktori saat ini, jadi di atas adalah setara dengan:Setelah Anda yakin ini adalah file yang ingin Anda hapus, Anda dapat menambahkan
-delete
opsi:Jadi, tidak hanya
find
lebih aman untuk digunakan, itu juga lebih ekspresif , jadi jika Anda ingin menghapus hanya file tertentu dalam hierarki direktori yang cocok dengan pola tertentu Anda bisa menggunakan ekspresi seperti ini untuk melihat dulu, lalu hapus file-file:Ada banyak alasan bagus untuk belajar dan menggunakan
find
selain lebih amanrm
, jadi Anda akan berterima kasih pada diri sendiri nanti jika Anda meluangkan waktu untuk belajar menggunakannyafind
.sumber
Ada beberapa saran yang sangat buruk di utas ini, untungnya sebagian besar telah ditolak.
Pertama-tama, ketika Anda perlu menjadi root, menjadi root-sudo dan berbagai trik alias akan membuat Anda lemah. Dan lebih buruk lagi, mereka akan membuat Anda ceroboh. Belajarlah untuk melakukan hal-hal dengan cara yang benar, berhenti bergantung pada alias untuk melindungi Anda. Suatu hari Anda akan mendapatkan root pada kotak yang tidak memiliki roda pelatihan Anda dan meledakkan sesuatu.
Kedua - ketika Anda memiliki root, anggap diri Anda mengendarai bus yang penuh dengan anak-anak sekolah. Kadang-kadang Anda bisa mendengarkan lagu di radio, tetapi di lain waktu Anda harus melihat kedua arah, memperlambat segalanya, dan memeriksa ulang semua cermin Anda.
Ketiga - Anda hampir tidak pernah benar - benar harus
rm -rf
- lebih mungkin Anda maumv something something.bak
ataumkdir _trash && mv something _trash/
Keempat - selalu
ls
wildcard Anda sebelumnyarm
- Tidak ada yang gila melihat sesuatu sebelum menghancurkannya selamanya.sumber
ls
.find
perintah .find . -name '*~'
contoh Anda . Maksud saya adalah bahwals
akan mencantumkan glob yang sama yangrm
akan digunakan.Ini adalah standar milik saya khusus untuk regexps dalam konteks rm, tetapi akan menyelamatkan Anda dalam kasus ini.
Saya selalu melakukan yang
echo foo*/[0-9]*{bar,baz}*
pertama, untuk melihat apa yang akan cocok dengan regexp. Setelah saya memiliki output, saya kemudian kembali dengan pengeditan baris perintah dan ubahecho
kerm -rf
. Saya tidak pernah menggunakanrm -rf
regexp yang belum diuji .sumber
*
memiliki definisi yang sangat tepat yang disebut Kleene Star yang merupakan operator unary yang cocok dengan nol atau lebih elemen dari set yang diterapkan (dalam kasus ekspresi reguler, karakter atau set karakter sebelum Kleene Star), sedangkan dalam globbing*
cocok apa pun dalam pola yang mengikuti. Mereka secara semantik sangat berbeda bahkan jika mereka tampaknya memiliki sintaksis yang sama.Solusi untuk masalah ini adalah dengan mengambil cadangan reguler. Kapan saja Anda menghasilkan sesuatu yang Anda tidak ingin kehilangan risiko, buatlah cadangannya. Jika Anda menemukan cadangan secara teratur terlalu menyakitkan, maka sederhanakan prosesnya sehingga tidak menyakitkan.
Misalnya, jika Anda bekerja pada kode sumber, gunakan alat seperti
git
untuk mencerminkan kode dan menyimpan riwayat di komputer lain. Jika Anda mengerjakan dokumen, minta skrip yang menyimpanrsync
dokumen Anda ke komputer lain.sumber
Sepertinya cara terbaik untuk mengurangi risiko ini adalah dengan menghapus dua tahap seperti kebanyakan GUI. Artinya, ganti rm dengan sesuatu yang memindahkan sesuatu ke direktori tempat sampah (pada volume yang sama). Kemudian bersihkan sampah itu setelah waktu yang cukup berlalu untuk melihat adanya kesalahan.
Salah satu utilitas tersebut, trash-cli, dibahas di Unix StackExchange, di sini .
sumber
rm
.Salah satu faktor kunci penting untuk menghindari kesalahan seperti itu adalah tidak login menggunakan akun root. Saat Anda masuk menggunakan pengguna biasa yang tidak memiliki hak istimewa, Anda perlu menggunakan
sudo
untuk setiap perintah. Jadi, Anda harus lebih berhati-hati.sumber
sudo
dan cadangan. Lihat halaman ini: forum.synology.com/wiki/index.php/… . Ini berbicara tentang membuat tempat sampah. Semoga ini membantu!Ketika saya menghapus direktori secara rekursif, saya meletakkan
-r
, dan-f
jika berlaku, di akhir perintah, misalnyarm /foo/bar -rf
. Dengan begitu, jika saya secara tidak sengaja menekan Enter terlalu dini, tanpa mengetikkan keseluruhan path, perintah itu tidak berulang sehingga kemungkinan tidak berbahaya. Jika saya menabrak Enter saat mencoba mengetikkan slash setelah/foo
, saya telah menulisrm /foo
daripadarm -rf /foo
.Itu bekerja dengan baik pada sistem yang menggunakan GNU coreutils, tetapi utilitas pada beberapa Unix lain tidak memungkinkan opsi untuk ditempatkan di akhir seperti itu. Untungnya, saya tidak terlalu sering menggunakan sistem seperti itu.
sumber
Ini mungkin rumit, tetapi Anda dapat mengatur peran dalam SELinux sehingga bahkan jika pengguna menjadi root melalui sudo su - (atau plain su), kemampuan untuk menghapus file dapat dibatasi (Anda harus login langsung sebagai root untuk menghapus file). Jika Anda menggunakan AppArmor, Anda mungkin melakukan hal serupa .
Tentu saja, solusi lain adalah memastikan bahwa Anda memiliki cadangan. :)
sumber
Hindari menggunakan globbing . Di Bash, Anda dapat mengatur
noglob
. Tetapi sekali lagi, ketika Anda pindah ke sistem di mananoglob
tidak diatur, Anda mungkin lupa itu dan melanjutkan seolah-olah itu.Atur
noclobber
untuk mencegahmv
dancp
dari menghancurkan file juga.Gunakan browser file untuk dihapus. Beberapa browser file menawarkan trashcan (misalnya, Konqueror ).
Cara lain untuk menghindari globbing adalah mengikuti. Di baris perintah, saya
echo filenamepattern >> xxx
. Kemudian saya mengedit file dengan Vim atau vi untuk memeriksa file mana yang akan dihapus, (perhatikan karakter pola nama file di filenmates.) Dan kemudian gunakan%s/^/rm -f/
untuk mengubah setiap baris menjadi perintah hapus. Sumber xxx. Dengan cara ini Anda melihat setiap file yang akan dihapus sebelum melakukannya.Pindahkan file ke direktori atau loteng 'loteng'. Atau gunakan kontrol versi (seperti yang dikatakan sebelumnya).
sumber
find
perintah .ZSH bertanya kepada saya (sebagai standar) sebelum melakukan a
rm -rf *
.sumber
Di luar
chattr
, tidak ada banyak perlindungan dari membiarkan root menjalankan perintah seperti itu. Itu sebabnya kelompok yang tepat dan perintah yang cermat penting ketika menjalankan hak istimewa.Lain kali; keluarkan file yang Anda rencanakan untuk dihapus - hilangkan 'f' dari
rm -rf
, atau gunakanfind
dan berikan kepadaxargs rm
sumber
find
, tetapi saya sarankan cara yang lebih aman menggunakannya dalam jawaban saya . Tidak perlu menggunakanxargs rm
karena semua versi modernfind
memiliki-delete
opsi . Selain itu, untuk menggunakan dengan aman,xargs rm
Anda juga perlu menggunakanfind -print0
danxargs -0 rm
jika tidak, Anda akan mengalami masalah ketika Anda menemukan hal-hal seperti nama file dengan spasi.find
adalah saran yang bagus, namun nuansaxargs
penting jika Anda menyarankan menggunakannya, jika tidak maka akan menimbulkan kebingungan dan frustrasi ketika menemukan file dengan spasi (yang dihindari dengan menggunakan-delete
opsi).Beberapa alias keselamatan untuk perintah lain, untuk mencegah bencana serupa, ditemukan di sini :
Perhatikan huruf besar
-I
, berbeda dengan-i
:sumber
Saya biasanya menggunakan
-v
bendera untuk melihat apa yang sedang dihapus dan memiliki kesempatan untuk^C
cepat jika saya memiliki sedikit keraguan. Sebenarnya bukan cara untuk mencegah hal burukrm
, tetapi ini dapat berguna untuk membatasi kerusakan jika terjadi kesalahan.sumber
Proses penghapusan saya pada mesin berbasis Unix adalah sebagai berikut.
ls /path/to/intented/file_or_directory
jendela terminal dan kemudian tekanreturn
(atauTab
, seperti yang diinginkan), untuk melihat daftar file.Jika semuanya terlihat baik,
klik
up arrow
tombol untuk membawals /path/to/intented/file_or_directory
dari riwayat terminal lagi.ganti
ls
denganrm
ataurm -r
ataurm -rf
, sesuai kebutuhan. Saya pribadi tidak suka menggunakan-f
bendera.Proses validasi ini juga mencegah eksekusi
rm
perintah yang prematur , sesuatu yang telah terjadi pada saya, sebelum saya mulai mengikuti proses ini.sumber
find
seperti yang saya jelaskan dalam jawaban saya .Jika Anda tidak berminat untuk mendapatkan kebiasaan baru sekarang,
.bashrc/.profile
adalah tempat yang baik untuk menambahkan beberapa tes untuk memeriksa apakah Anda akan melakukan sesuatu yang bodoh. Saya membayangkan dalam fungsi Bash saya bisa memahami pola yang mungkin merusak hari saya dan muncul dengan ini:Hal yang baik tentang itu adalah bahwa itu hanya Bash.
Jelas itu tidak cukup generik dalam bentuk itu, tapi saya pikir itu berpotensi, jadi tolong posting beberapa ide atau komentar.
sumber
find
perintah . Juga, saya tidak mengerti mengapa Anda mengatakan "hal yang baik tentang itu adalah hanya Bash"? Disarankan untuk menghindari bash-isme dalam skrip .set -f
yang setaraset -o noglob
di Bash, tapi itu masih tidak menjelaskan pernyataan Anda bahwa "Hal yang baik tentang itu adalah bahwa itu hanya Bash". Alih-alih, Anda dapat menghilangkan masalah sepenuhnya dan dengan cara yang umum untuk setiap shell dengan tidak menggunakanrm
sama sekali, melainkan menggunakanfind
perintah . Sudahkah Anda benar-benar mencoba saran itu untuk membandingkannya dengan apa yang Anda sarankan di sini?Sayangnya, saya tidak dapat meninggalkan komentar di atas karena karma yang tidak mencukupi, tetapi saya ingin memperingatkan yang lain bahwa safe-rm bukanlah obat mujarab untuk mimpi buruk penghapusan massal yang tidak disengaja.
Berikut ini diuji dalam mesin virtual Linux Mint 17.1 (peringatan bagi mereka yang tidak terbiasa dengan perintah ini: JANGAN LAKUKAN INI! Sebenarnya, bahkan mereka yang akrab dengan perintah ini seharusnya / mungkin tidak akan pernah melakukan ini untuk menghindari kehilangan data bencana):
Versi teks (kental):
Versi gambar (penuh):
sumber
Saya suka pendekatan windows dari recycle bin.
Saya biasanya membuat direktori bernama "/ tmp / recyclebin" untuk semua yang perlu saya hapus:
Dan tidak pernah menggunakan rm -rf, saya selalu menggunakan:
Kemudian, saya mengosongkan recyclebin menggunakan skrip aa atau secara manual.
sumber
Hehe (belum diuji dan agak jenaka!):
Lalu:
Secara realistis, Anda harus memiliki jeda mental sebelum menjalankan operasi semacam itu dengan bola dunia, apakah Anda menjalankannya sebagai root, menambahkan "sudo" ke dalamnya, dll. Anda dapat menjalankan "ls" pada bola yang sama, dll., tetapi, secara mental, Anda harus berhenti sebentar, pastikan Anda mengetik apa yang Anda inginkan, memastikan apa yang Anda inginkan sebenarnya adalah apa yang Anda inginkan, dll. Saya kira ini adalah sesuatu yang terutama dipelajari dengan menghancurkan sesuatu di tahun pertama sebagai sebuah Unix SA, seperti halnya pembakar panas adalah guru yang baik dalam memberi tahu Anda bahwa sesuatu di atas kompor mungkin panas.
Dan pastikan Anda memiliki cadangan yang bagus!
sumber
Juga, bukan sebagai perlindungan, tetapi sebagai cara untuk mengetahui file apa yang dihapus sebelum Anda menekan ^ C, Anda dapat menggunakan
locate
database (tentu saja hanya jika itu diinstal dan selamatrm
)Saya sudah mempelajarinya dari posting blog ini
sumber
Cukup gunakan ZFS untuk menyimpan file yang Anda butuhkan untuk menolak penghapusan tidak disengaja dan memiliki daemon yang:
Jika file dihapus, ditimpa, rusak, apa pun, cukup kembalikan sistem file Anda ke klon snapshot bagus terakhir dan Anda selesai.
sumber
tidak begitu banyak jawaban tetapi tip, saya selalu
rm (dir) -rf
tidakrm -rf (dir)
yaitu: jangan pergi nuklir sampai saat-saat terakhir yang mungkin.Ini membantu mengurangi situasi di mana Anda menemukan nama dir sedemikian rupa sehingga itu masih merupakan penghapusan yang valid, seperti tergelincir dan menekan tombol enter.
sumber
rm
, di mana opsi harus datang sebelum nama file.Saya pikir ini adalah tip pencegahan yang kuat, dengan * jalan pintas ekspansi di shell:
Pertama, ketik
rm -rf *
ataurm -rf your/path/*
, JANGAN mengetikkanEnter
kunci. (tentu saja, Anda harus memiliki kebiasaan peduli untuk tidak menekan Enter dengan cepat / tidak sengaja saat menggunakanrm -rf
)Lalu, tekan
Alt-Shift-8
(mis.Alt-Shift-*
) Untuk memperluas wildcard "*" secara eksplisit di bash. Ini juga menghindari memasukkan kembali perintah "rm -rf *" saat menavigasi sejarah.Akhirnya, setelah memeriksa ekspansi memiliki file / direktori yang tepat, tekan Enter.
Selesai.
sumber
Dalam hal ini membantu seseorang di luar sana untuk kasus mereka sendiri:
1. Gunakan
rmsafe
:Ini memindahkan file ke folder "trash" dan Anda selalu memiliki kesempatan untuk membawanya kembali dengan sederhana
mv
:Sumber: https://github.com/pendashteh/rmsafe
2. Gunakan
safe
:Anda dapat mengatur alias untuk
rm
menggunakan brankas:Sekarang jika Anda menjalankan
rm /*
Anda mendapatkan ini sebagai respons:dan saya yakin Anda tidak akan mengetik
y
!Sumber: https://github.com/pendashteh/safe
sumber