Thêm ba lựa chọn.
Sử dụng find
với -mindepth 1
và -delete
:
Các cấp độ chính
Không áp dụng bất kỳ thử nghiệm hoặc hành động nào ở các cấp độ nhỏ hơn các cấp độ (một số nguyên không âm).
Indmindepth 1 có nghĩa là xử lý tất cả các tệp ngoại trừ các đối số dòng lệnh.
-delete
file Xóa; đúng nếu loại bỏ thành công. Nếu loại bỏ thất bại, một thông báo lỗi được đưa ra. Nếu delete thất bại, trạng thái thoát của find sẽ không khác (khi cuối cùng nó thoát). Sử dụng −delete tự động bật tùy chọn −depth.
Kiểm tra cẩn thận với tùy chọn -depth trước khi sử dụng tùy chọn này.
# optimal?
# -xdev don't follow links to other filesystems
find '/target/dir with spaces/' -xdev -mindepth 1 -delete
# Sergey's version
# -xdev don't follow links to other filesystems
# -depth process depth-first not breadth-first
find '/target/dir with spaces/' -xdev -depth -mindepth1 -exec rm -rf {} \;
2. Sử dụng find
, nhưng với các tập tin, không phải thư mục. Điều này tránh sự cần thiết phải rm -rf
:
# delete all the files;
find '/target/dir with spaces/' -type f -exec rm {} \;
# then get all the dirs but parent
find '/target/dir with spaces/' -mindepth 1 -depth -type d -exec rmdir {} \;
# near-equivalent, slightly easier for new users to remember
find '/target/dir with spaces/' -type f -print0 | xargs -0 rm
find '/target/dir with spaces/' -mindepth 1 -depth -type d -print0 | xargs -0 rmdir
3. Đi trước và xóa thư mục mẹ, nhưng tạo lại nó. Bạn có thể tạo một hàm bash để thực hiện điều này bằng một lệnh; Đây là một lót đơn giản:
rm -rf '/target/dir with spaces' ; mkdir '/target/dir with spaces'