ฉันมีไฟล์บีบอัดใน * .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 tar
GNU 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
และที่จะรู้จักกับตัวไฟล์น้ำมันดินที่ถูกบีบอัดด้วย