Saya harus menghapus 200 000 file (semuanya) dari folder, dan saya tidak ingin menghapus folder itu sendiri.
menggunakan rm, saya mendapatkan kesalahan "Daftar argumen terlalu panjang". Saya sudah mencoba melakukan sesuatu dengan xargs, tapi saya bukan Shell Guy, jadi tidak berhasil:
find -name * | xargs rm -f
Jawaban:
sumber
-delete
. Ini juga menghindari masalah dengan file yang mengandung tanda kutip atau karakter baris baru (meskipun Anda bisa menggunakan opsi GNU find-print0
dan GNU xarg-0
untuk memperbaikinya).xargs
sementara itufind
memiliki-exec command {} +
sintaks.Anda melakukan segalanya dengan benar. Ini adalah '*' yang memberi Anda masalah (shell memperluasnya ke daftar file, bukan
find
). Sintaks yang tepat bisa:(Yang terakhir ini sedikit kurang efisien karena akan memberikan nama yang lebih panjang
xargs
, tetapi Anda tidak akan memperhatikan :-))Atau, Anda dapat melarikan diri dari '*' Anda seperti ini (namun dalam hal itu juga akan mencoba juga menghapus "." Dan ".."; itu bukan masalah besar - Anda hanya akan mendapatkan sedikit peringatan :-)):
Jika nama file Anda mengandung spasi maka gunakan ini:
sumber
Perintah berikut akan menghapus semua file dari direktori saat ini :
sumber
-name '*'
tidak berarti "semua file". File dikatakan dengan:-type f
Anda dapat mencoba
atau
sumber
Kudos to quantas answer, berikut adalah beberapa tambahan.
Jika Anda ingin menghapus file dengan pola nama tertentu, Anda dapat menulisnya seperti ini. Juga ditambahkan -cetak sehingga Anda dapat melihat apa yang terjadi ketika file sedang dihapus.
Ini misalnya menghapus semua jpeg di direktori saya.
sumber