ฉันต้องการบีบอัดภาพหลายภาพเป็นไฟล์. xz ฉันจะทำอย่างไร
ฉันต้องการบีบอัดภาพหลายภาพเป็นไฟล์. xz ฉันจะทำอย่างไร
คำตอบ:
แม้ว่าจะเป็นรายละเอียดโดย Zacharee1และโดย heemaylมักจะเป็นสิ่งที่คุณจะต้องการที่จะทำอีกวิธีหนึ่งคือการข้อมูลท่อแปดเปื้อนกับคำสั่ง:tar cJf archive files...
xz
tar c files... | xz > archive.tar.xz
ตั้งแต่ของ Ubuntu tar
สนับสนุนตัวเลือกอีกทางหนึ่งนี้จะเป็นประโยชน์โดยเฉพาะเมื่อคุณต้องการที่จะผ่านตัวเลือกในการJ
xz
ในตัวอย่างนี้ฉัน tar และ xzip ไฟล์ TIFF บางไฟล์ที่มีระดับการบีบอัดสูง ( -9
ถึงxz
) และเอาต์พุต verbose ( v
ถึงtar
, -v
ถึงxz
):
ek@Io:~/Pictures$ tar vc *.tif{,f} | xz -9v > pics.tar.xz
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
100 % 207.3 KiB / 290.0 KiB = 0.715
แน่นอนว่าสิ่งนี้สามารถทำได้ในสองขั้นตอนที่แยกจากกันอย่างชัดเจน:
ek@Io:~/Pictures$ tar vcf pics.tar *.tif{,f}
page001.tif
page002.tif
page003.tif
page004.tif
page9087.tif
page3la.tiff
quux0000.tiff
ek@Io:~/Pictures$ xz -9v pics.tar
pics.tar (1/1)
100 % 207.3 KiB / 290.0 KiB = 0.715
สองวิธีเหล่านั้นไม่เท่ากันจริง ๆ ในวิธีการใช้งานแม้ว่า.tar.xz
ไฟล์ที่พวกเขาสร้างขึ้นในท้ายที่สุดควรจะเหมือนกัน (และเมื่อฉันทดสอบมัน)
tar
มีประปา ( |
) เพื่อป้อนข้อมูลxz
ของ xz
รับข้อมูลจากtar
เกือบจะในทันทีและจะไม่มีการสร้างไฟล์ tar ที่ไม่มีการบีบอัดระดับกลาง นี้คือจะบอกว่าวิธีแรกเป็นหลักเทียบเท่าการtar cJf archive files...
xz
ยกเว้นสำหรับอาร์กิวเมนต์เพิ่มเติมที่ผ่านมาxz
ในคำสั่งที่สอง ( xz
ลบไฟล์ต้นฉบับโดยอัตโนมัติเมื่อเสร็จสิ้นเว้นแต่จะเรียกใช้ด้วย-k
/ --keep
)สำหรับการอ่านเพิ่มเติมโปรดดูโพสต์นี้โดย Rafael van Hornและ the tar
and xz
manpages
tar -J
คือการระบุตัวแปรสภาพแวดล้อมXZ_OPT
ทำให้การเรียกเช่น:XZ_OPT="-9v" tar -Jcf out.tar.xz [files]
ใช้tar
กับ-J
ตัวเลือก:
tar -cvJf images.tar.xz /directory/containing/images/*
tar
ใช้เพื่อรวมหลายไฟล์เป็นหนึ่งเดียว (เก็บถาวร) แล้วเราต้องบีบอัดไฟล์เก็บถาวรโดยใช้อัลกอริธึมการบีบอัด XZ
จากman tar
:
-c, --create
create a new archive
-v, --verbose
verbosely list files processed
-J, --xz
-f, --file ARCHIVE
use archive file or device ARCHIVE
นอกจากนี้ทราบว่าจะถูกสร้างขึ้นในไดเรกทอรีปัจจุบันถ้าคุณต้องการที่จะบันทึกไว้ใช้ที่อื่นimages.tar.xz
/full/path/to/images.tar.xz
xz
เป็นที่ช้าที่สุดในหมู่xz
, gzip
, bzip2
เนื่องจากอัตราการบีบอัดของมันสูงกว่าช้า others..the เป็นมูลค่าที่จะจัดการกับถ้าคุณต้องการบีบอัดมากขึ้น ..
ใช้คำสั่งนี้: tar cJf <archive.tar.xz> <files>
. แยกพา ธ ไฟล์ด้วยช่องว่าง
-cfJ
-
ด้านหน้า .. จากman tar
: .. A function letter need not be prefixed with ``-''
ดังนั้นtar cJf
ก็โอเคอย่างแน่นอน
tar cJf
นั่นจะทำให้ OP เป็นอีกวิธีหนึ่งในการทำเช่นนี้เพราะคำตอบของฉันครอบคลุมไปแล้วtar --cvJf
ในตอนแรก ..