ฉันต้องการสร้างไฟล์ tar ของโฟลเดอร์ แต่โฟลเดอร์นี้มีไฟล์ tar.gz บางไฟล์เช่น abc.tar.gz, pqr.tar.gz ซึ่งฉันไม่ต้องการรวมดังนั้นวิธีแยกไฟล์นี้ออกขณะทำ tar
ฉันต้องการสร้างไฟล์ tar ของโฟลเดอร์ แต่โฟลเดอร์นี้มีไฟล์ tar.gz บางไฟล์เช่น abc.tar.gz, pqr.tar.gz ซึ่งฉันไม่ต้องการรวมดังนั้นวิธีแยกไฟล์นี้ออกขณะทำ tar
คำตอบ:
--exclude=PATTERN
When performing operations, `tar' will skip files that match
PATTERN.
--exclude="*.tar.gz"
--exclude-from=FILE
-X FILE
Similar to --exclude, except `tar' will use the list of patterns
in the file FILE.
--exclude-from="File.txt"
file.txt
abc.tar.gz
prq.tar.gz
เกี่ยวกับสิ่งที่ชอบ:
find ./ -name '*.tar.gz' > /tmp/excludefiles
tar -czvf newarchive.tar.gz -X /tmp/excludefiles foldertotar/
ฉันไม่ได้ทดสอบ เป็นเพียงความคิดที่จะแก้ปัญหา
แก้ไข:
มันง่ายยิ่งขึ้น:
tar -czvf newarchivename.tar.gz --exclude '*.tar.gz' foldertobetarred/
โซลูชันนี้ผ่านการทดสอบและใช้งานได้
คุณสามารถใช้ฟังก์ชั่น - ยกเว้นใน tar
@tmp$ ls test
abc.tar.gz adfd asdfd dfcvdf dfdf efdfefef pqr.tar.gz test
@tmp$ tar -cvzf test.tar.gz test --exclude="*.tar.gz"
test/
test/adfd
test/dfcvdf
test/test/
test/test/abcd
test/efdfefef
test/dfdf
test/asdfd