Anda melakukan segalanya dengan benar. Ini adalah '*' yang memberi Anda masalah (shell memperluasnya ke daftar file, bukan find
). Sintaks yang tepat bisa:
cd <your_directory>; find . -type f | xargs rm -f
find <your_directory> -type f | xargs rm -f
(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 :-)):
find . -name '*' | xargs rm -f
find . -name "*" | xargs rm -f
find . -name \* | xargs rm -f
Jika nama file Anda mengandung spasi maka gunakan ini:
find . -type f -print0 | xargs -0 rm -f