27
เชลล์คำสั่งไปยังไดเรกทอรี tar ยกเว้นไฟล์ / โฟลเดอร์บางอย่าง
มีคำสั่งเชลล์ / สคริปต์แบบธรรมดาที่สนับสนุนการแยกไฟล์ / โฟลเดอร์บางไฟล์ออกจากการเก็บถาวรหรือไม่? ฉันมีไดเรกทอรีที่ต้องเก็บถาวรด้วยไดเรกทอรีย่อยที่มีจำนวนไฟล์ที่มีขนาดใหญ่มากฉันไม่จำเป็นต้องสำรองข้อมูล ไม่ใช่วิธีแก้ปัญหา: tar --exclude=PATTERNคำสั่งตรงกับรูปแบบที่กำหนดและไม่รวมไฟล์เหล่านั้น แต่ฉันต้องการเฉพาะไฟล์และโฟลเดอร์ที่จะละเลย (เส้นทางของไฟล์เต็ม) มิฉะนั้นไฟล์ที่ถูกต้องอาจจะได้รับการยกเว้น ฉันยังสามารถใช้คำสั่ง find เพื่อสร้างรายการไฟล์และแยกไฟล์ที่ฉันไม่ต้องการเก็บถาวรและส่งต่อรายการให้ tar แต่ก็ใช้ได้กับไฟล์จำนวนเล็กน้อยเท่านั้น ฉันมีหมื่น ฉันเริ่มคิดว่าทางออกเดียวคือการสร้างไฟล์ที่มีรายการไฟล์ / โฟลเดอร์ที่จะแยกออกจากนั้นใช้ rsync ด้วย--exclude-from=fileเพื่อคัดลอกไฟล์ทั้งหมดไปยังไดเรกทอรี tmp แล้วใช้ tar เพื่อเก็บถาวรไดเรกทอรีนั้น ใครสามารถคิดวิธีที่ดีกว่า / มีประสิทธิภาพมากกว่านี้ได้ไหม แก้ไข: ทางออกของCharles Maทำงานได้ดี gotcha ขนาดใหญ่คือ--exclude='./folder' ต้องอยู่ที่จุดเริ่มต้นของคำสั่ง tar คำสั่งแบบเต็ม (cd ก่อนดังนั้นการสำรองข้อมูลจึงสัมพันธ์กับไดเรกทอรีนั้น): cd /folder_to_backup tar --exclude='./folder' --exclude='./upload/folder2' -zcvf /backup/filename.tgz .