Tôi chạy vào vấn đề sử dụng find
với -delete
do hành vi cố ý của find
(tức là từ chối xóa nếu con đường bắt đầu với ./, mà họ làm trong trường hợp của tôi) như đã nêu trong trang người đàn ông của mình:
-delete
Xóa các tập tin và / hoặc thư mục tìm thấy. Luôn luôn trả lại đúng sự thật. Điều này thực thi từ thư mục làm việc hiện tại khi tìm thấy đệ quy xuống cây. Nó sẽ không cố xóa tên tệp có ký tự "/" trong tên đường dẫn của nó so với "." vì lý do bảo mật.
Xử lý truyền tải chiều sâu đầu tiên được ngụ ý bởi tùy chọn này.
Các liên kết sau không tương thích với tùy chọn này.
Thay vào đó, tôi đã có thể làm
find . -type d -name 'received_*_output' -exec rm -r {} +
Đối với trường hợp của bạn, có vẻ như trích dẫn toàn cầu (dấu hoa thị, *) là giải pháp, nhưng tôi muốn cung cấp câu trả lời của mình trong trường hợp bất kỳ ai khác có vấn đề tương tự.
LƯU Ý: Trước đây, câu trả lời của tôi là làm như sau, nhưng @Wildcard đã chỉ ra các lỗ hổng bảo mật khi thực hiện điều đó trong các bình luận.
find . -type d -name 'received_*_output' | xargs rm -r
find . -type d -name .Apple*
làm việc - nó liệt kê tất cả các thư mục. Tuy nhiên, nó thất bại khi tôi thêm-delete
vào cuối. Nó chỉ trở lại với bản tóm tắt sử dụng. Nó đang chạy trên BusyBox v1.1.1. Điều đó làm cho một sự khác biệt?