คุณต้องการสร้างไฟล์ tar จากตำแหน่งที่ไฟล์ที่คุณต้องการใช้ tar อยู่หรือไม่
มีหลายวิธีในการทำเช่นนี้
ถ้ามันจะถูกสร้างขึ้นภายใน (= บนเครื่องเดียวกัน):
tar czvf /path/to/destination/newfile.tar.gz ./SOURCEDIR_OR_FILES
คุณสามารถเพิ่มไฟล์หรือไดเรกทอรีเพิ่มเติมเพื่อ tar ที่ท้ายคำสั่งนั้น
ถ้าจะสร้างจากระยะไกล (เช่นคุณต้องการสร้างไฟล์ tar บนโฮสต์ระยะไกลจากที่มีข้อมูลที่จะทดสอบ):
tar czvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cat > newfile.tar.gz'
รุ่นที่ใหม่กว่ามีความหลากหลายมาก ตัวอย่างเช่นคุณสามารถ "ทำซ้ำ" ไดเรกทอรี + ย่อยโดยใช้เทคนิคเดียวกัน:
ทำซ้ำไดเรกทอรี + ย่อยไปยังไดเรกทอรีท้องถิ่นอื่น:
tar cf - ./SOURCEDIR_OR_FILES | ( cd LOCAL_DEST_DIR && tar xvf - )
ทำซ้ำไดเรกทอรี + ส่วนย่อยไปยังไดเรกทอรีระยะไกลอื่น:
tar cvf - ./SOURCEDIR_OR_FILES | ssh user@host 'cd REMOTE_DEST_DIR && tar xf - '
วาง 'v' หากคุณไม่ต้องการให้แสดงไฟล์เนื่องจากเป็น tar-ed (หรือ untarred): จากนั้นจะเร็วขึ้นมาก แต่จะไม่พูดมากนักหากมีข้อผิดพลาด
ฉันใช้ ". / ... " สำหรับแหล่งที่มาเพื่อบังคับ tar เพื่อเก็บไว้เป็นเส้นทางที่เกี่ยวข้อง ในบางกรณีคุณจะต้องเพิ่มข้อมูลเส้นทางเพิ่มเติม:
ตัวอย่างเช่นการ tar ไฟล์ crontab รวมถึงไฟล์ใน / etc คุณสามารถทำได้:
cd / ; tar czf all_crons.tgz ./etc/*cron* ./var/spool/cron
ฉันใช้ตามวัตถุประสงค์เส้นทางสัมพัทธ์: tar บางรุ่นอาจมีอันตรายและแตกไฟล์ด้วยเส้นทาง GLOBAL ดั้งเดิมซึ่งหมายความว่าคุณสามารถทำได้: cd /safedir ; tar xvf sometar
และมีไฟล์ที่มีชื่อโกลบอลเขียนทับไฟล์ที่เส้นทางเดิมซึ่งอยู่นอก / safedir และไม่อยู่ข้างใต้! อันตรายมากและยังคงเป็นไปได้เนื่องจากมีเซิร์ฟเวอร์การผลิตเก่าอยู่ ดีกว่าที่จะใช้ในการใช้เส้นทางสัมพัทธ์ตลอดเวลาแม้ว่าคุณจะใช้น้ำมันดินที่ใหม่กว่า
cd /opt; tar zcf $HOME/junk.tar.gz junk
กล่าวคือ