คลายการบีบอัดไฟล์ใน. txz และ. tar ด้วยคำสั่งเดียว


13

ฉันมีไฟล์บีบอัดใน * .txz หลังจากแกะออกแล้วฉันได้รับไฟล์ * .tar มีวิธีการแตกมันสองครั้งด้วยคำสั่งเดียว? ฉันหมายถึงไฟล์แกะ (* .tar) .txz ด้วยคำสั่งเดียว?

รู้ฉันทำแบบนี้:

xz -d file.txz
tar xvf file.tar

แต่ฉันสงสัยว่ามีวิธีที่ดีกว่า

คำตอบ:


18
xz -d < file.tar.xz | tar xvf -

นั่นเป็นสิ่งเดียวกันกับไฟล์บีบอัดที่เก็บถาวร คุณไม่ควรสร้างสำเนาต้นฉบับของไฟล์ที่ไม่มีการบีบอัด

tarการใช้งานบางอย่างเช่น GNU รุ่นล่าสุดtarมีตัวเลือกในการโทรxzด้วยตนเอง

ด้วย GNU tarหรือbsdtar:

tar Jxvf file.tar.xz

แม้ว่าหากคุณมีรุ่นที่มี-Jโอกาสเป็นไปได้ที่จะตรวจจับxzไฟล์โดยอัตโนมัติดังนั้น:

tar xvf file.tar.xz

จะพอเพียง

หาก GNU หรือ BSD ของtarคุณเก่าเกินไปที่จะให้การสนับสนุนxzโดยเฉพาะคุณอาจสามารถใช้--use-compress-programตัวเลือก:

tar --use-compress-program=xz -xvf file.tar.gz

ข้อดีอย่างหนึ่งของการtarเรียกใช้ยูทิลิตีคอมเพรสเซอร์คือสามารถรายงานความล้มเหลวได้ในสถานะทางออก

หมายเหตุ: ถ้าtar.xzเก็บได้รับการสร้างขึ้นด้วยpixz, pixzอาจมีการเพิ่มtarดัชนีไปซึ่งจะช่วยให้การแยกไฟล์ที่ไม่ซ้ำกันได้โดยไม่ต้องยกเลิกการบีบอัดข้อมูลที่เก็บทั้งหมด:

pixz -x path/to/file/in/archive < file.tar.xz | tar xvf -

ฉันต้องใช้อันนี้: tar --use-compress-program = xz -xvf file.tar.gz ขอบคุณ!
Paweł Jaworowski


4

การเปิดออกอาจไม่ใช่คำศัพท์ที่ถูกต้อง คุณสามารถขยายด้วยxzและUntartarกับ

หน้าคู่มือสำหรับ GNU tar( man tarGNU tar เป็นค่าเริ่มต้นใน Debian) ระบุว่าคุณสามารถใช้:

-I, --use-compress-program PROG
      filter through PROG (must accept -d)

และxzรองรับ-dตัวเลือกดังนั้นคุณสามารถใช้:

tar --use-compress-program xz xvf file.txz 

อะไรคือสิ่งที่ห่างไกลไม่ชัดเจนจากหน้าคนคือ-xzและ-Jมี shorthands สำหรับหรือ--use-compress-program xz-I xz

และสิ่งที่ไม่ได้ระบุไว้เลยใน man page ก็คือคุณสามารถทำได้

tar xvf file.txz 

ใน GNU tar xzและที่จะรู้จักกับตัวไฟล์น้ำมันดินที่ถูกบีบอัดด้วย

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.