ฉันสามารถแตกโฟลเดอร์เฉพาะโดยใช้ tar ไปยังโฟลเดอร์อื่นได้หรือไม่


14

ฉันใหม่สำหรับโลกของ Linux และดูเหมือนจะทำงานเป็นบล็อกสะดุด ฉันรู้ว่าฉันสามารถแยกเก็บ specifc ใช้คำสั่งtar xvfz archivename.tar.gz sampledir/แต่วิธีการที่ฉันสามารถดึงsampledir/ไปtestdir/มากกว่าเส้นทางที่เก็บอยู่ใน egcurrently ที่เก็บอยู่ในเส้นทาง/tmp/archivename.tar.gzและฉันต้องการที่จะดึงsampledirไปซึ่งอยู่ในเส้นทางtestdir/tmp/testdir

คำตอบ:


19

สิ่งที่คุณกำลังมองหาคือ-Cตัวเลือก:

$ man tar
<snip>

-C, --directory DIR
       change to directory DIR

การใช้งานตามตัวอย่างของคุณ:

$ tar xvzf archivename.tar.gz -C /tmp/testdir/ sampledir/

นอกจากนี้คุณอาจสนใจที่จะรู้ว่ารุ่นที่ทันสมัยtarไม่จำเป็นต้องมีการzตั้งค่าสถานะเพื่อขยายไฟล์ gzipped; พวกเขาจะสังเกตเห็นว่ามันเป็น.gzและทำสิ่งที่ถูกต้องโดยอัตโนมัติ


ขอบคุณ สนุกฉันลองที่ก่อนโพสต์คำถามและมันล้มเหลว บางทีฉันอาจพลาดตัวเลือก ฉันจะลองอีกครั้ง
PeanutsMonkey

ความฉลาด ฉันมักจะลืมเกี่ยวกับเรื่องนี้สำหรับคลังเก็บขนาดใหญ่
zmonteca

3

คุณไม่จำเป็นต้องเล่นเกมบ้า ๆ Tar สนับสนุนการแยกไฟล์ย่อยในไฟล์เก็บถาวรอย่างสมบูรณ์เท่านั้นดังแสดงในตัวอย่าง (เล็กน้อย) ต่อไปนี้:

/tmp $ mkdir tarsrc
/tmp $ cd tarsrc
/tmp/tarsrc $ mkdir a b
/tmp/tarsrc $ touch a/aaa b/bbb
/tmp/tarsrc $ tar cf ../tartest.tar .
/tmp/tarsrc $ cd ..
/tmp $ mkdir tardest
/tmp $ cd tardest
/tmp/tardest $ tar xf ../tartest.tar ./a    
/tmp/tardest $ ls -R
.:
a/

./a:
aaa

เคล็ดลับคือเส้นทางที่จะต้องตรงกับเนื้อหาของ tarfile อย่างแน่นอน ดังนั้นเมื่อคุณทำ a tar tf, ถ้าเส้นทางเริ่มต้นด้วย./, คุณต้องใส่มันเข้าไปและถ้ามันไม่มีคุณก็ต้องทิ้งมันไว้ นอกจากนี้หากคุณต้องการแยกเส้นทางย่อยย่อยย่อยย่อยเส้นทางย่อยมันจะจบลงที่ระดับ N ลึกลงไปในระบบแฟ้มเมื่อคุณทำเสร็จแล้ว


ขอบคุณ womble อาจไม่ใช่ตัวอย่างที่ถูกต้องที่จะใช้ แต่ฉันกำลังเปรียบเทียบ tar กับ Winzip, WinRAR และอื่น ๆ และ tar อาจเป็นคำสั่งที่ไม่ถูกต้องในการใช้งาน แต่เมื่อเห็นว่าฉันได้เห็นตัวอย่างของ tar ใช้กระบวนการที่คล้ายกันเช่นเลือกไฟล์ที่คุณต้องการยกเลิกการเก็บถาวร (tar ทำสิ่งนี้) และเลือกพา ธ ที่คุณต้องการแตกไฟล์ (tar ไม่ทำเช่นนี้ยกเว้นว่าฉันอยู่ในไดเรกทอรีเฉพาะ)
PeanutsMonkey

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