ฉันจะใช้คำสั่ง Unix tar กับ filepath โดยนัยได้อย่างไร


9

ฉันกำลังใช้tar -xvfคำสั่งและกำลังใช้เส้นทางที่ชัดเจน อย่างไรก็ตามเส้นทางเต็ม
ตัวอย่าง:

tar -xvf 13.2.tar

มันกำลังนำเส้นทางของ/mntโฟลเดอร์ /โฟลเดอร์เต็ม

ฉันจะ tar ไฟล์ด้วยเส้นทางโดยนัยได้อย่างไร


คุณควรอธิบายอย่างชัดเจนเกี่ยวกับสิ่งที่เกิดขึ้นอย่างแน่นอนเนื่องจากวิธีการถามคำถามในปัจจุบันของคุณทำให้แม้แต่ลูกบอลคริสตัลที่ซับซ้อนที่สุดดูเหมือนฝ้าเล็กน้อย

คำตอบ:


2

โดยปกติtarต้องการ--absolute-namesหรือ--absolute-pathsตัวเลือกเพื่อรักษา'/'ส่วนรากในขณะที่สร้างการเก็บถาวร แม้ว่าคุณจะบังคับให้ทำเช่นนั้นสารสกัดก็จะข้ามการนำ'/'ด้วยเช่นกัน


อย่างไรก็ตามถ้าคุณมีไฟล์เก็บถาวรที่มีไฟล์นำหน้า'/'และคุณไม่ข้ามมันในขณะที่แตกไฟล์คำตอบของ NoahD ควรทำงานในรูปแบบนี้

pax -r -s ',/mnt,/new/path,' -v -f 13.2.tar

ผมคิดว่าไม่ได้จัดการกับไฟล์บีบอัดเพื่อให้คุณจะต้องท่อหลังจากขยายเข้าไปในpax นั่นจะเป็นเช่นนี้ (สมมติว่าคุณมีไฟล์เก็บถาวร gzipped)pax

gunzip -c 13.2.tar.gz | pax -r -s ',/mnt,/new/path,' -v

ฉันพบหน้าวิกินี้บน Google แล้ว


2

ความแตกต่างระหว่างการใช้ canonical (aka ชัดแจ้ง) และญาติ (สิ่งที่คุณอาจเรียกโดยนัย) คือว่าคุณใช้ a /ที่จุดเริ่มต้น

ตัวอย่างเช่นหากไดเร็กทอรีการทำงานปัจจุบันคือ/usr/home/bobคำสั่งต่อไปนี้มีผลเหมือนกันทุกประการ

tar -xvf foo.tar *
tar -xvf ./foo.tar *
tar -xvf ./foo.tar ./*
tar -xvf /usr/home/bob/foo.tar *
tar -xvf /usr/home/bob/foo.tar ./*
tar -xvf /usr/home/bob/foo.tar / usr / home / bob / *

แต่ฉันสงสัยว่านี่ไม่ใช่คำถามของคุณ ดูเหมือนว่าคุณจำเป็นต้องกำหนดการใช้งานดิสก์และค้นหาไดเรกทอรีที่ไม่เต็ม สิ่งนี้สามารถทำได้ด้วยdfคำสั่ง

df -k # space on disk in kilobytes
df -m # as above, but in meg
df -g # as above, but in gig

และคุณสามารถใช้mountเพื่อแสดงให้คุณเห็นว่าระบบไฟล์ใดติดตั้งอยู่ที่อุปกรณ์ใด


0

ในการสร้างไฟล์ tar ที่มีเส้นทางสัมพันธ์

cd /parent/of/dir/to/tar
tar cvf subdir.tar subdir

หากต้องการคลาย tar ลงในไดเร็กทอรีเฉพาะที่ไม่ใช่ไดเร็กทอรีการทำงานปัจจุบันให้ใช้สวิตช์ -C (ตัวพิมพ์ใหญ่ C)

หากคุณต้องการปลดล็อคไฟล์ที่มีชื่อพา ธ สัมบูรณ์อยู่ในจุดอื่นนอกเหนือจากรูทคุณอาจต้องยุ่งเกี่ยวกับchroot(1)ไฟล์


0

ฉันเชื่อว่าpaxจะทำเคล็ดลับ

pax -r -s, / mnt, / gooddir, -f 13.2.tar

ควรให้คุณแทนที่ในไดเรกทอรีรากใหม่

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