Ini cara yang aman:
grep -lrIZ foo . | xargs -0 rm -f --
-l mencetak nama file dari file yang cocok dengan pola pencarian.
-rmelakukan pencarian rekursif untuk pola foodi direktori yang diberikan .. Jika ini tidak berhasil, coba -R.
-I(modal i) menyebabkan file biner seperti PDF dilewati.
-Z memastikan bahwa nama file nol- (yaitu, nul-) diakhiri sehingga nama yang mengandung spasi tidak ditafsirkan dengan cara yang salah (yaitu, sebagai beberapa nama, bukan satu).
xargs -0mengumpankan nama file dari grepmenjadi rm -f, memisahkan kata dengan nol (nul) byte (ingat -Zopsi dari grep).
--sering dilupakan tetapi sangat penting untuk menandai akhir opsi dan memungkinkan penghapusan file yang namanya dimulai -.
Jika Anda ingin melihat file mana yang akan dihapus, cukup hapus | xargs -0 rm -f --bagian itu, dan tinggalkan Zopsi untuk grep.
Pengguna lain menyarankan sesuatu seperti yang berikut, yang tidak boleh Anda jalankan karena tidak aman:
files=`grep foo * | cut -d: -f1`
rm -f $files # unsafe, do not run it!
Jika saya memiliki file ImportantStuffyang saya tidak ingin hapus dan obsolete ImportantStuffmengandung foo, maka saya kehilangan ImportantStuff(dan tidak obsolete ImportantStuff !) Ketika saya menjalankan perintah ini, karena $filesrusak di ruang ketika ditafsirkan. Berbahaya memasukkan daftar nama file ke dalam variabel skalar shell dengan cara ini.