Tôi sử dụng lệnh sau để xóa một thư mục, các tệp và thư mục trên 30 ngày và chuyển chúng sang thư mục lưu trữ mà tôi có thể xóa sau vài tuần nếu không ai yêu cầu trả lại tệp của họ. Thư mục đích có thư mục con theo tên người dùng, thư mục lưu trữ cũng vậy.
Đây là lệnh tôi sử dụng:
find /path/to/directory/username/ -mtime +30 -exec mv "{}" /path/to/archive/username/ \;
Tôi đề nghị một phiên bản sửa đổi của này để trả lời một câu hỏi về hỏi ubuntu, một người dùng khác chỉnh sửa mã để thay đổi cuối dòng \;
cho +
vì nó nhanh hơn (và nhiều hơn nữa đúng không?). Xem tại đây
Tuy nhiên, sử dụng +
theo cách này hoạt động nếu -exec
lệnh là ls -lh
nhưng không phải trong lệnh thực tế mà tôi sử dụng. Nếu tôi dùng thử, +
tôi nhận được thông báo lỗi:
find: missing argument to '-exec'
Tôi không hiểu tại sao nó hành xử theo cách này, hoặc lệnh chính xác sẽ là gì. Xin đừng chỉ chỉnh sửa lệnh, tôi muốn hiểu hơn là chỉ làm theo một gợi ý một cách mù quáng.
+
cung cấp nhiều đối số cho cùng một lệnh, nhưng mv
không thể đối phó với điều đó!