Apa yang rm -rf
dilakukan ketika digunakan untuk menghapus file atau direktori?
Bagaimana cara -r
dan -f
opsi bekerja bersama?
Apa yang rm -rf
dilakukan ketika digunakan untuk menghapus file atau direktori?
Bagaimana cara -r
dan -f
opsi bekerja bersama?
Jawaban:
Perintahnya rm -rf
sama dengan rm -r -f
.
Dari rm
halaman manual (ketikkan man rm
terminal untuk melihatnya) -r
apakah:
remove directories and their contents recursively
Dan -f
apakah:
ignore nonexistent files and arguments, never prompt
Jadi secara kombinasi mereka melakukan keduanya.
Silakan gunakan perintah ini dengan hati-hati!
rm -rf /
secara teoritis akan menghapus setiap file di komputer Anda yang berada di direktori tempat Anda memiliki izin menulis. Jika Anda root, itu berarti memusnahkan seluruh sistem. (Dalam praktiknya, itu tidak berhasil karena GNU rm
memiliki kasus khusus yang menolak untuk mengizinkan rm -r /
kecuali Anda juga mengatakan --no-preserve-root
.)
rm -rf /
untuk melihat apakah itu tertangkap dengan benar.
Selain jawaban yang benar sebelumnya, saya ingin mengajari Anda cara memancing:
Ketika Anda tidak yakin tentang bagaimana perintah bekerja, opsi apa yang dimiliki dan apa fungsinya, buka terminal dan ketik
man <command>
Sebagai contoh:
man rm
Setelah di sana, Anda dapat mencari opsi. Halaman manual bisa sangat panjang untuk dibaca, jadi pada tipe terminal:
/<pattern>
Jadi misalnya, melakukan:
/-f
Anda dapat dengan mudah mendarat ke:
-f, --force
ignore nonexistent files and arguments, never prompt
Untuk -r lakukan:
-r, -R, --recursive
remove directories and their contents recursively
Anda dapat berpindah di antara hasil pencarian menggunakan n
(berikutnya) dan N
(sebelumnya).
Jika Anda perlu melakukan sesuatu, tetapi Anda tidak tahu nama perintahnya, gunakan apropos
untuk mencari di halaman manual:
apropos <pattern>
Sebagai contoh:
apropos directory listing
rm
kependekan dari remove. The r
bendera ke direktori menghapus dan isinya secara rekursif dan f
kekuatan berarti, dan itu menimpa setiap prompt konfirmasi.
r flag is to remove directories
tidak benar..itu menghapus direktori beserta isinya, itu adalah operasi berulang .. menurut kata-kata Anda, itu hanya akan menghapus direktori, bagaimana dengan subdir, file di bawahnya? karena entri direktori hanya berisi pemetaan nama-inode, ini hanya tidak masuk akal ..
Seperti yang telah disebutkan, rm -rf <ARG>
dimaksudkan untuk secara paksa menghapus file secara rekursif, di mana <ARG>
direktori (meskipun itu bisa menjadi file dengan baik).
Inti dari -r
(penghapusan rekursif) adalah bahwa rm
tidak dapat menghapus direktori jika tidak kosong, hanya karena panggilan sistem yang mendasarinya yang rm
menggunakan ( membatalkan tautan ) hanya beroperasi pada direktori kosong. Jadi, apa yang -r
dilakukan flag, adalah pencarian mendalam-pertama turun ke direktori dan menghapus file terlebih dahulu, dan hanya saat direktori kosong - itu akan menghapusnya. Efek yang sama ini dicapai melalui find
perintah dengan -delete
flag (ketika Anda tidak menentukan pemfilteran oleh -type
, tapi itu cerita lain).
Adapun -f
, ia melakukan dua hal - satu mencegah meminta apakah Anda ingin menghapus file atau tidak (seperti ketika Anda menghapus file yang dimiliki oleh pengguna lain dari dalam direktori Anda, itu tidak akan menampilkan rm: remove write-protected regular empty file 'f1'?
konfirmasi konfirmasi), dan mengabaikan file tidak ada. Jadi misalnya, dengan nama file yang tidak ada, Anda harus mendapatkan rm: cannot remove 'nonexistent': No such file or directory
kesalahan.
Lihat juga: