tar สามารถค้นพบรูปแบบการเก็บถาวรเมื่อ piping ผ่าน wget ได้หรือไม่?


3

เมื่อฉันมีไฟล์เก็บถาวร tar ของรูปแบบใด ๆ ฉันสามารถใช้:

tar xf archive.tar.xz
tar xf anotherarchive.tar.gz

เป็น tar ค้นพบรูปแบบที่เกี่ยวข้องด้วยตัวเอง

ตอนนี้ฉันต้องการดาวน์โหลดไฟล์เก็บถาวรและแตกไฟล์โดยไม่บันทึกลงในระบบไฟล์โดยใช้wget:

wget -qO- http://someserver.org/sometar.tar.xz | tar xf -C ~/extractTarget
tar: -C: Cannot open: No such file or directory
tar: Error is not recoverable: exiting now

ฉันตระหนักว่าการfตั้งค่าสถานะก่อให้เกิดปัญหาตามที่คาดไว้ไฟล์จริง หากไม่ใช้จะอนุญาตให้ tar บ่นสำหรับค่าสถานะที่เกี่ยวข้อง

ในกรณีที่gz:

tar: Archive is compressed. Use -z option

และในกรณีของxz:

tar: Archive is compressed. Use -J option

การเพิ่มพวกมันทำให้คำสั่งของฉันทำงาน แต่เนื่องจาก tar กำลังรับรู้รูปแบบการเก็บถาวรฉันสงสัยว่า:

มีวิธีการที่จะแยกพวกเขาโดยไม่ต้องเพิ่มธงเหมือนxf?

คำตอบ:


2

tar xf -ใช้ -เป็นตัวยึดสำหรับการป้อนข้อมูลมาตรฐาน


ฉันยังคงได้รับ: tar: Archive is compressed. Use -J option tar: Error is not recoverable: exiting nowเมื่อทำงานwget -qO- http://downloads.xiph.org/releases/ogg/libogg-1.3.2.tar.xz | tar xf -
k0pernikus

หากข้อมูลที่ถูกบีบอัดที่คุณต้องการแน่นอนต้องเพิ่มนั้นยกเลิกการบีบอัดธงในของคุณtarโทร (เหมือนtar xzf -) ถ้าคุณต้องการบางบีบอัดเฉพาะที่ไม่สนับสนุนการที่คุณสามารถท่อส่งออกผ่านการบีบอัดก่อนที่จะส่งต่อผ่านท่ออีกครั้งเพื่อให้tar tar
Janis

ประเด็นของคำถามคือtar xfไม่จำเป็นต้องมีการคลายการบีบอัดใด ๆ และฉันต้องการบรรลุสิ่งเดียวกันเมื่อทำการ pip ไฟล์เก็บถาวรจาก wget
k0pernikus

@ k0pernikus จริง ๆ แล้วtarจะต้องมีการผ่านการบีบอัดแฟล็กและจริง ๆ แล้วแฟล็กการคลายการบีบอัดที่จำเป็น ฉันคิดว่ามันสามารถอนุมานได้จากการขยายในทฤษฎี แต่ไม่ได้ทำในทางปฏิบัติ ดังนั้นฉันไม่รู้ว่าคุณหมายถึงอะไร
Faheem Mitha

1
หนึ่งข้อมูลเพิ่มเติม: ผมอ่านคำสั่ง tar มี-aตัวเลือกที่จะตรวจหาการบีบอัดจากคำต่อท้ายไฟล์ หากเปิดใช้งานใน tar โดยค่าเริ่มต้นมันจะอธิบายว่าทำไมมันไม่สามารถตรวจจับการบีบอัดเนื่องจากไม่มีส่วนต่อท้ายไฟล์หากข้อมูลถูกอ่านจากไปป์
Janis
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.