Như trong các câu trả lời trước (+1 cho cả hai), mẹo là sử dụng -type f
vị ngữ.
Lưu ý, thay vì -exec rm '{}'
bạn cũng có thể sử dụng -delete
vị ngữ. Nhưng đừng làm vậy. Trước tiên, -exec rm '{}'
bạn có thể (và nên) làm -exec echo rm '{}'
để xác minh rằng đây thực sự là những gì bạn muốn. Sau đó chạy lại lệnh mà không có echo
.
Sử dụng -delete
nhanh hơn (không có thêm fork()
và execve()
cho mỗi tệp), nhưng điều này có rủi ro vì -delete
hoạt động cũng như một điều kiện, vì vậy:
# delete *.tmp files
find . -type f -name '*.tmp' -delete
nhưng nếu bạn CHỈ trao đổi đối số:
# delete ALL files
find . -type f -name '*.tmp' -delete
Nếu bạn cần find
và rm
để làm việc nhanh hơn cho hàng tấn tệp, hãy xem find ... | xargs ... rm
thành ngữ UNIX.