จะเพิ่มความคิดเห็นในโพสต์ @Steve Kehletแต่ต้องการ 50 ตัวแทน (RIP)
สำหรับใครก็ตามที่พบโพสต์นี้ผ่าน googling จำนวนมากฉันพบวิธีที่ไม่เพียง แต่ค้นหาไฟล์ที่ระบุในช่วงเวลาเท่านั้น แต่ยังไม่รวมพา ธ สัมพัทธ์หรือช่องว่างที่อาจทำให้เกิดข้อผิดพลาดในการ tarring (ขอบคุณสตีฟมาก)
find . -name "*.pdf" -type f -mtime 0 -printf "%f\0" | tar -czvf /dir/zip.tar.gz --null -T -
.
ไดเร็กทอรีสัมพัทธ์
-name "*.pdf"
มองหาไฟล์ PDF (หรือไฟล์ประเภทใดก็ได้)
-type f
ประเภทที่ต้องการค้นหาคือไฟล์
-mtime 0
มองหาไฟล์ที่สร้างขึ้นใน 24 ชั่วโมงที่ผ่านมา
-printf "%f\0"
ปกติ-print0
หรือ-printf "%f"
ไม่ได้ผลสำหรับฉัน จากหน้าคน:
การอ้างอิงนี้ดำเนินการในลักษณะเดียวกับ GNU ls นี่ไม่ใช่กลไกการอ้างอิงเดียวกับกลไกที่ใช้สำหรับ -ls และ -fls หากคุณสามารถตัดสินใจได้ว่าจะใช้รูปแบบใดสำหรับผลลัพธ์ของการค้นหาโดยปกติแล้วการใช้ '\ 0' เป็นตัวยุติจะดีกว่าการใช้การขึ้นบรรทัดใหม่เนื่องจากชื่อไฟล์สามารถมีช่องว่างและอักขระขึ้นบรรทัดใหม่ได้
-czvf
สร้างไฟล์เก็บถาวรกรองไฟล์เก็บถาวรผ่าน gzip ไฟล์รายการที่ประมวลผลอย่างละเอียดชื่อไฟล์เก็บถาวร
แก้ไข 2019-08-14: ฉันต้องการเพิ่มว่าฉันยังสามารถใช้คำสั่งเดียวกันนี้ในความคิดเห็นของฉันได้โดยใช้ tar เอง:
tar -czvf /archiveDir/test.tar.gz --newer-mtime=0 --ignore-failed-read *.pdf
จำเป็น--ignore-failed-read
ในกรณีที่ไม่มี PDF ใหม่สำหรับวันนี้
find ... | xargs ...
คือการใช้ / -0 พารามิเตอร์ -print0find -print0 ... | xargs -0 ...
ในแต่ละ: สิ่งนี้จะทำให้ชื่อไฟล์ถูกคั่นด้วยอักขระ null ซึ่งหมายความว่าคุณสามารถมีช่องว่างหรือขึ้นบรรทัดใหม่หรือสิ่งแปลก ๆ อื่น ๆ ในชื่อไฟล์ของคุณและจะยังใช้งานได้