Làm cách nào tôi có thể xóa tất cả các tệp trong một thư mục chưa được truy cập trong một khoảng thời gian nhất định?


14

Tôi muốn chạy một công việc định kỳ hàng đêm để xóa tất cả các tệp trong một thư mục không được truy cập trong một tuần trở lên. Cách hiệu quả nhất để làm điều này trong bash là gì?


2
findcó thể lọc dựa trên atime. "Tính chính xác" của atime ít nhất phụ thuộc vào cấu hình (xem noatime).

Câu trả lời:


20

Bạn muốn các findcông cụ .

find folder -depth -type f -atime +7 -delete

(Điều này sẽ xóa tất cả các file ( chỉ những người thường xuyên , không có đường ống, thiết bị đặc biệt, thư mục, liên kết tượng trưng) trong thư mục nhất định và tất cả các thư mục con (đệ quy), nơi cuối cùng thời gian truy cậpdài hơn 7 ngày trước.)


6
Bạn có thể muốn thêm -type fvào đó để đảm bảo nó chỉ xóa các tệp chứ không phải toàn bộ thư mục.
Shadur

3

Bạn có thể muốn kiểm tra tmpwatchcái nào có thể được đưa vào một công việc định kỳ. Không cần phải cuộn của riêng bạn với find. Trên RHEL, nó nằm trong tmpwatchRPM.


Đây chắc chắn là giải pháp thanh lịch hơn, nhưng tôi thích tính di động của find.
bloudermilk
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.