Tôi có thư mục tạm thời đầy đủ các thư rác mà tất cả bắt đầu bằng __temp__
(ví dụ: __temp__user_uploads
), mà tôi muốn xóa bằng chức năng dọn dẹp. nỗ lực chức năng của tôi là để chạy:Làm cách nào để sử dụng lệnh `find` trong Linux để xóa các thư mục không trống?
find . -name __temp__* -exec rm -rf '{}' \;
Nếu tôi chạy lệnh và có nhiều __temp__
thư mục (__temp__foo
và __temp__bar
), tôi nhận được kết quả:
find: __temp__foo: unknown option
Nếu tôi chạy lệnh và có chỉ 1 __temp__
thư mục (__temp__foo
), nó sẽ bị xóa và tôi nhận được kết quả:
find: ./__temp__foo: No such file or directory
Tại sao lệnh không hoạt động, tại sao nó không phù hợp như vậy, và làm thế nào tôi có thể sửa nó?
Là một cải tiến hiệu quả và chặt chẽ, giả sử các tiện ích GNU (kể từ khi OP là trên Linux), tôi thực sự khuyên bạn nên 'tìm. -maxdepth 1-type d -name '__temp __ *' -print0 | xargs -0 rm -rf'. – pilcrow
+1 để đề xuất xarg thay vì -exec –
@AshishKumar - tại sao +1 cho xarg? Có phải '-exec' không phải là một tính năng tốt của' tìm'? pilcrow, cảm ơn lời giải thích! – orokusaki