Cách xóa tất cả các tệp đã được tạo n phút trước trong linux


13

Tôi đoán trong hầu hết các trường hợp, khi trích xuất một kho lưu trữ tar, chúng ta sẽ nhận được một thư mục có cùng tên với tệp lưu trữ nhưng hậu tố khác nhau. Nhưng trong một số trường hợp không may mắn, như tôi đã gặp hôm nay, sau khi giải nén một tarball, tôi thấy rất nhiều tệp được phát tán trong thư mục làm việc, điều này gây phiền toái.

Vì vậy, những gì tôi muốn học hỏi từ bạn là - làm thế nào tôi có thể di chuyển những tập tin mới được tạo? Tôi biết đó nên là một cách tiếp cận "tìm cộng với rm" ở đó, nhưng tôi không biết chính xác làm thế nào.

Câu trả lời:


23

Tôi tự hỏi những gì man findsẽ nói. Sau đó, bạn thậm chí có thể cho thấy những nỗ lực của bạn.

find . -type f -cmin -1
find . -type f -cmin -1 -delete
  • Các -type fđược sử dụng để xác định chỉ tập tin thường xuyên được lựa chọn.
  • Các -cmin -1tình trạng của tập tin đã thay đổi cuối cùng trong ít hơn (một) phút vừa qua.
  • Các -deletelá cờ nói tìm để xóa tất cả các file điện tử của bạn trong vũ trụ được biết đến hoặc một cái gì đó như thế, vì vậy sử dụng thận trọng khi sử dụng nó.

Đầu tiên thực hiện một thử nghiệm chạy mà không cần các -deletelá cờ được khuyến khích mạnh mẽ.

Lưu ý -deletelà một phần mở rộng không di động.

Tôi khuyên bạn nên đọc findtrang này trước khi sử dụng trang này, bởi vì nó bao gồm nhiều vấn đề và cảnh báo khác nhau có thể áp dụng trong tình huống của bạn.


Đẹp! -delete trông dễ dàng hơn -exec rm {} \;
PJ Brunet

+1 để dành thời gian giải thích các lựa chọn tùy chọn
Jad S

5
find . -mtime -60s -exec mv {} /dest/dir \;

Tìm mọi tệp trong thư mục hiện tại (và thư mục con) đã được sửa đổi trong 60 giây qua và di chuyển chúng đến / Dest / dir.


3
Cẩn thận, trích xuất các tệp lưu trữ có thể lưu giữ ngày sửa đổi ban đầu. Tốt nhất để sử dụng thời gian sáng tạo.
Cem Kalyoncu

@CemKalyoncu điểm tuyệt vời.
skarface

0

Cách thức sử dụng (miễn là bạn không có giao diện đồ họa) sẽ sử dụng mc . Nó có thể sắp xếp các tập tin theo ngày.

Bạn cũng có thể xóa các tệp trong tar từ dòng lệnh:

> rm $( tar -ztf mytar.tar.gz )

(-ztf) dành cho các tệp tar.gz. Bạn có thể sử dụng (-tf) cho các tệp thông thường hoặc (-jtf) cho các tệp tar.bz2.

Nếu danh sách các tệp quá lớn và lệnh cuộn cảm ở trên, bạn có thể sử dụng xargs:

> tar -ztf mytar.tar.gz | xargs rm

wow, xấu của tôi - Tôi đã không đọc câu hỏi thực sự - bạn cần di chuyển chúng, không xóa (xin vui lòng, sửa tiêu đề, sai lệch của nó). Tôi đoán bạn vẫn có thể xóa chúng, sau đó tạo một thư mục mới và gỡ bỏ ở đó :). Rốt cuộc, di chuyển = sao chép + xóa.
Nắng
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.