จะเพิ่มความคิดเห็นในโพสต์ @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 ซึ่งหมายความว่าคุณสามารถมีช่องว่างหรือขึ้นบรรทัดใหม่หรือสิ่งแปลก ๆ อื่น ๆ ในชื่อไฟล์ของคุณและจะยังใช้งานได้