Làm cách nào tôi có thể sử dụng lệnh để xóa tất cả các tệp trong Tải xuống có ngày được thêm lớn hơn 1 năm?


12

Tôi đang sử dụng máy Mac. Làm cách nào tôi có thể sử dụng lệnh để xóa tất cả các tệp trong ~/Downloadsđó số ngày được thêm lớn hơn 1 năm?


1
Bạn đang đặc biệt tìm kiếm một lệnh đầu cuối, hoặc một cái gì đó giống như một hành động tự động hóa đủ?
Jerry W.

1
Bạn có ý nghĩa gì bởi "ngày của ai được thêm vào?" Đã thêm vào những gì và làm thế nào?
Allan

1
@ ALLan Kiểm tra "Xem> Sắp xếp theo" hoặc các cột có sẵn trong "Tùy chọn xem" trong Finder; OS X theo dõi ngày một mục được thêm vào thư mục.
Miles

@Miles - những thuộc tính đó không có sẵn trong bash trừ khi bạn cài đặt các công cụ XCode Dev và OP được sử dụng cụ thể ~ / Tải xuống là quy ước bash (hay nói chung hơn là shell).
Allan

Câu trả lời:


24

Đó là một lệnh tương đối đơn giản để xóa các tệp trong một thư mục lớn hơn một năm. Ví dụ, lệnh sau được thực thi trong Terminal

find ~/Downloads/ -type f -mtime +365 -exec rm {} \;

sẽ xóa tất cả các tập tin trong ~/Downloadsthư mục cũ hơn một năm.

  • find là lệnh tìm kiếm "công cụ"

  • -type fnói tìm những gì cần tìm, trong trường hợp này tập tin

  • -mtime +365 cho biết rằng thời gian sửa đổi phải lớn hơn 365 ngày

  • -exec rm {} chuyển (thực thi) từng mục "tìm thấy" cho lệnh rm

Những gì tôi muốn làm là kiểm tra nó bằng cách loại trừ -exec rm {} \;phần và đảm bảo tôi sẽ nhận được kết quả chính xác. Khi tôi chắc chắn, tôi chỉ cần thêm nó vào để hoàn thành việc gỡ bỏ.

Một caveat!! Những tệp này không được thêm vào "Thùng rác" của bạn. Lệnh bỏ qua Thùng rác và ngay lập tức bị xóa, vì vậy hãy thận trọng khi sử dụng.


Một cách an toàn hơn ...

(Cảm ơn người dùng lucasoldaini trong các bình luận bên dưới)

Nếu bạn muốn di chuyển các tệp của mình vào "Thùng rác", chỉ cần thay thế -exec rm {} \;phần này thành-exec mv {} ~/.Trash \;

Chúng sẽ vẫn còn trong Thùng rác của bạn cho đến lần tiếp theo bạn dọn sạch nó.

Bạn có thể nhận thêm thông tin về mỗi lệnh bằng cách xem trang man của họ:


6
Thay vì sử dụng rm, bạn có thể di chuyển các tệp ~/.Trashđể ngăn chặn chúng bị xóa ngay lập tức.
lucasoldaini

2
Lưu ý rằng ngày sửa đổi (mà câu trả lời này đang hoạt động) khác với ngày được thêm vào . Hơn nữa, Safari sẽ đặt ngày sửa đổi của tệp đã tải xuống thành tệp do máy chủ cung cấp nếu có, do đó, ngay cả một tệp được tải xuống ngày hôm qua cũng có thể có ngày sửa đổi hơn một năm.
Miles

2
Nếu bạn có homebrew: brew cài đặt thùng rác và thay vào đó rm hãy sử dụng lệnh rác từ bây giờ.
Kyslik

Tôi đã cập nhật câu trả lời của mình dựa trên đề xuất của @lucasoldaini Tôi thích sử dụng các phương thức được xây dựng hơn là sử dụng homebrew hoặc MacPorts.
Allan

1
Tôi thích giải pháp của bạn hơn của tôi.
Jerry W.

10

Nếu bạn muốn sử dụng Automator, bạn có thể xây dựng một hành động như vậy:

Tìm mục Tìm kiếm - Tải xuống tìm kiếm - Tất cả những điều sau đây là đúng: -Date Tạo không có trong 365 ngày qua.

Nhận các mục tìm kiếm được chọn

Di chuyển các mục Finder vào Thùng rác

Ảnh chụp màn hình thuận tiện: Hành động tự động


7

Lựa chọn công cụ của tôi là Hazel , một phần mềm đa năng giá rẻ, thực hiện mọi việc với các tệp và thư mục khi chúng khớp với các quy tắc nhất định mà bạn thiết lập. Quy tắc này sẽ di chuyển các tệp không được thêm vào năm ngoái từ thư mục Hämtade filer . Khác với giải pháp dòng lệnh ở trên vì nó chạy hàng ngày, do đó, đây là một giải pháp thiết lập và quên. Ảnh chụp màn hình của khung prefel Hazel


Đây là giải pháp tốt nhất, vì nó thực sự sử dụng Ngày đã thêm thay vì Ngày đã sửa đổi, có thể không giống nhau. Một giải pháp dòng lệnh có thể tìm kiếm kMDItemDateAddedtrong mdlsnhưng tôi khuyên bạn nên giải pháp Hazel để thay thế.
TJ Luoma
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.