Bạn đang làm mọi thứ đúng. Đó là '*' cung cấp cho bạn một vấn đề (trình bao đang mở rộng nó thành danh sách các tệp thay vì find
). Cú pháp đúng có thể là:
cd <your_directory>; find . -type f | xargs rm -f
find <your_directory> -type f | xargs rm -f
(Cái sau kém hiệu quả hơn một chút vì nó sẽ chuyển tên dài hơn sang xargs
, nhưng bạn sẽ khó nhận ra :-))
Ngoài ra, bạn có thể thoát '*' của mình như thế này (tuy nhiên trong trường hợp đó, nó cũng sẽ cố gắng xóa "." Và ".."; đó không phải là vấn đề lớn - bạn sẽ chỉ nhận được một cảnh báo nhỏ :-)):
find . -name '*' | xargs rm -f
find . -name "*" | xargs rm -f
find . -name \* | xargs rm -f
Nếu tên tệp của bạn chứa khoảng trắng thì hãy sử dụng:
find . -type f -print0 | xargs -0 rm -f