Bạn có thể bắt đầu bằng cách nói find /var/dtpdev/tmp/ -type f -mtime +15
. Điều này sẽ tìm thấy tất cả các tập tin cũ hơn 15 ngày và in tên của họ. Tùy chọn, bạn có thể chỉ định -print
ở cuối lệnh, nhưng đó là hành động mặc định. Nên chạy lệnh trên trước để xem tập tin nào được chọn.
Sau khi bạn xác minh rằng find
lệnh đang liệt kê các tệp mà bạn muốn xóa (và không có ai khác), bạn có thể thêm "hành động" để xóa các tệp. Các hành động điển hình để làm điều này là:
-exec rm -f {} \;
(hoặc, tương đương, -exec rm -f {} ';'
)
Điều này sẽ chạy rm -f
trên mỗi tệp; ví dụ,
rm -f /var/dtpdev/tmp/A1/B1; rm -f /var/dtpdev/tmp/A1/B2; rm -f /var/dtpdev/tmp/A1/B3; …
-exec rm -f {} +
Điều này sẽ chạy rm -f
trên nhiều tệp cùng một lúc; ví dụ,
rm -f /var/dtpdev/tmp/A1/B1 /var/dtpdev/tmp/A1/B2 /var/dtpdev/tmp/A1/B3 …
vì vậy nó có thể nhanh hơn một chút so với tùy chọn 1. (Nó có thể cần chạy rm -f
một vài lần nếu bạn có hàng ngàn tệp.)
-delete
Điều này nói với find
chính nó để xóa các tập tin, mà không cần chạy rm
. Điều này có thể cực kỳ nhanh hơn các -exec
biến thể, nhưng nó sẽ không hoạt động trên tất cả các hệ thống.
Vì vậy, nếu bạn sử dụng tùy chọn 2, toàn bộ lệnh sẽ là:
find /var/dtpdev/tmp/ -type f -mtime +15 -exec rm -f {} +