Làm cách nào để xóa tất cả các tệp cũ hơn 3 ngày khi "Danh sách đối số quá dài"?


89

Tôi có một thư mục tệp nhật ký có 82000 tệp và thư mục trong đó (khoảng một nửa rưỡi).

Tôi cần xóa tất cả tệp và thư mục cũ hơn 3 ngày.

Trong một thư mục có 37000 tệp trong đó, tôi có thể thực hiện việc này với:

find * -mtime +3 -exec rm {} \;

Nhưng với 82000 tệp / thư mục, tôi gặp lỗi:

/ usr / bin / find: Danh sách đối số quá dài

Làm cách nào để khắc phục lỗi này để có thể xóa tất cả các tệp / thư mục cũ hơn 3 ngày?


1
Bạn đã thử find -mtime +3 -exec rm {} +chưa?
Gilles Quenot

1
Tôi tin rằng chạy find * -mtime +3 |xargs rmsẽ giải quyết được vấn đề đó.
Mats Petersson

9
Tôi nghĩ vấn đề duy nhất là find *. find .tốt hơn. Vỏ bao quanh bằng cách mở rộng *danh sách các tệp và thư mục khổng lồ.
tiếng ồn không nghệ thuật

@artlessnoise là đúng.
sjas

Câu trả lời:


120

Để xóa tất cả các tệp thư mục trong hiện tại :

find . -mtime +3 | xargs rm -Rf

Hoặc cách khác, phù hợp hơn với lệnh ban đầu của OP:

find . -mtime +3 -exec rm -Rf -- {} \;

26
-1 Vấn đề là ngôi sao trong "find *", bạn đã giải quyết nó bằng cách sử dụng "find." thay thế. Xargs đang gây hiểu lầm ở đây.
Aleksandr Levchuk

7
@AleksandrLevchuk nó giải quyết vấn đề OPs, và do đó không xứng đáng nhận được sự ủng hộ
hd1

11
Câu hỏi: "find * -mtime +3 -exec rm {} \;" cung cấp cho danh sách Đối số quá dài. Trả lời: Sử dụng "find. -Mtime +3 -exec rm {} \;"
Aleksandr Levchuk

2
Bạn có thể muốn thêm --sau rm, nhưfind . -mtime +3 -exec rm -- {} \;
domen

8
Không ai nói cái --này dùng để làm gì.
Acumenus

59

Cũng có thể sử dụng:

find . -mindepth 1 -mtime +3 -delete

Để không xóa thư mục đích


4
Câu trả lời hay nhất, rõ ràng hơn nhiều so với gọi rm (và có lẽ an toàn hơn). Hoạt động cho các thư mục con.
6

16

Một giải pháp khác cho câu hỏi ban đầu, đặc biệt. hữu ích nếu bạn chỉ muốn xóa MỘT SỐ tệp cũ hơn trong một thư mục, sẽ giống như sau:

find . -name "*.sess" -mtime +100 

vân vân .. Dấu ngoặc kép chặn ký tự đại diện của trình bao, do đó cho phép bạn "tìm" hàng triệu tệp :)

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.