ฉันมีไฟล์บีบอัดใน * .txz หลังจากแกะออกแล้วฉันได้รับไฟล์ * .tar มีวิธีการแตกมันสองครั้งด้วยคำสั่งเดียว? ฉันหมายถึงไฟล์แกะ (* .tar) .txz ด้วยคำสั่งเดียว?
รู้ฉันทำแบบนี้:
xz -d file.txz
tar xvf file.tar
แต่ฉันสงสัยว่ามีวิธีที่ดีกว่า
ฉันมีไฟล์บีบอัดใน * .txz หลังจากแกะออกแล้วฉันได้รับไฟล์ * .tar มีวิธีการแตกมันสองครั้งด้วยคำสั่งเดียว? ฉันหมายถึงไฟล์แกะ (* .tar) .txz ด้วยคำสั่งเดียว?
รู้ฉันทำแบบนี้:
xz -d file.txz
tar xvf file.tar
แต่ฉันสงสัยว่ามีวิธีที่ดีกว่า
คำตอบ:
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 -
การเปิดออกอาจไม่ใช่คำศัพท์ที่ถูกต้อง คุณสามารถขยายด้วย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และที่จะรู้จักกับตัวไฟล์น้ำมันดินที่ถูกบีบอัดด้วย