Sẽ thêm nhận xét vào bài đăng của @Steve Kehlet nhưng cần 50 đại diện (RIP).
Đối với bất kỳ ai đã tìm thấy bài đăng này thông qua nhiều googling, tôi đã tìm thấy một cách để không chỉ tìm thấy các tệp cụ thể được cung cấp trong một phạm vi thời gian, mà còn KHÔNG bao gồm các đường dẫn tương đối HOẶC khoảng trắng sẽ gây ra lỗi tarring. (CẢM ƠN BẠN RẤT NHIỀU STEVE.)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
thư mục tương đối
-name "*.pdf"
tìm kiếm pdf (hoặc bất kỳ loại tệp nào)
-type f
loại cần tìm là một tệp
-mtime 0
tìm kiếm các tệp được tạo trong 24 giờ qua
-printf "%f\0"
Thường xuyên -print0
HOẶC -printf "%f"
KHÔNG làm việc cho tôi. Từ trang người đàn ông:
Việc trích dẫn này được thực hiện theo cách tương tự như đối với GNU ls. Đây không phải là cơ chế trích dẫn giống như cơ chế được sử dụng cho -ls và -fls. Nếu bạn có thể quyết định định dạng nào sẽ sử dụng cho đầu ra của tìm kiếm thì thông thường tốt hơn là sử dụng '\ 0' làm dấu chấm cuối hơn là sử dụng dòng mới, vì tên tệp có thể chứa khoảng trắng và ký tự dòng mới.
-czvf
tạo kho lưu trữ, lọc kho lưu trữ thông qua gzip, liệt kê chi tiết các tệp được xử lý, tên lưu trữ
Chỉnh sửa 2019-08-14: Tôi muốn nói thêm rằng tôi cũng có thể sử dụng về cơ bản bằng cách sử dụng cùng một lệnh trong nhận xét của mình, chỉ sử dụng chính tar:
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
Cần thiết --ignore-failed-read
trong trường hợp không có tệp PDF mới cho ngày hôm nay.
find ... | xargs ...
là sử dụng print0 / -0 tham số trên mỗi:find -print0 ... | xargs -0 ...
. Điều này sẽ khiến các tên tệp được phân tách bằng ký tự rỗng, có nghĩa là bạn có thể có khoảng trắng hoặc dòng mới hoặc những thứ kỳ lạ khác trong tên tệp của mình và nó vẫn hoạt động.