ฉันต้องการสร้างไฟล์เก็บถาวร tar ในไดเรกทอรีอื่นแทนที่จะเป็นไดเรกทอรีปัจจุบัน
ฉันลองคำสั่งนี้:
tar czf file.tar.gz file1 -C /var/www/
แต่มันสร้างไฟล์เก็บถาวรในไดเรกทอรีปัจจุบัน ทำไม?
ฉันต้องการสร้างไฟล์เก็บถาวร tar ในไดเรกทอรีอื่นแทนที่จะเป็นไดเรกทอรีปัจจุบัน
ฉันลองคำสั่งนี้:
tar czf file.tar.gz file1 -C /var/www/
แต่มันสร้างไฟล์เก็บถาวรในไดเรกทอรีปัจจุบัน ทำไม?
คำตอบ:
วิธีที่ง่ายถ้าคุณไม่ต้องการใช้-C
เพื่อบอกtar
ให้เปลี่ยนเป็นไดเร็กทอรีอื่นโดยเฉพาะคือการระบุพา ธ เต็มไปยังไฟล์เก็บถาวรบนบรรทัดคำสั่ง จากนั้นคุณสามารถอยู่ในไดเรกทอรีใดก็ได้ที่คุณต้องการสร้างโครงสร้างไดเรกทอรีที่คุณต้องการภายในไฟล์เก็บถาวร
ต่อไปนี้จะสร้างการเก็บถาวร/var/www/file.tar.gz
และวางfile1
จากไดเรกทอรีปัจจุบัน (สิ่งที่เกิดขึ้น) ในนั้นโดยไม่มีข้อมูลเส้นทางในการเก็บถาวร
tar czf /var/www/file.tar.gz file1
เส้นทาง (ทั้งที่เก็บถาวรไฟล์องค์ประกอบหรือทั้งสองอย่าง) สามารถเป็นแบบสัมพัทธ์ได้เช่นกัน หากfile1
อยู่ใน/tmp
คุณอยู่/var/spool
และต้องการสร้างที่เก็บถาวร/var/www
คุณสามารถใช้สิ่งต่อไปนี้:
tar czf ../www/file1.tar.gz /tmp/file1
มีธีมให้เลือกหลายแบบนับล้าน แต่คุณควรเริ่มต้นใช้งาน เพิ่มการv
ตั้งค่าสถานะถ้าคุณต้องการดูสิ่งที่tar
ทำจริง
$PWD
มันคืออะไรมันจึงปลอดภัยที่สุดที่จะใช้เส้นทางสัมบูรณ์ในตัวอย่าง
file1
ในการเก็บ tar /tmp
จะ นี่อาจเป็นหรืออาจไม่ใช่สิ่งที่คุณคาดหวัง
ฉันเปลี่ยนข้อมูลที่ถูกบีบอัดเป็นสตรีม (-) และเปลี่ยนชื่อและค้นหา (>) ได้อย่างง่ายดายทุกที่ที่ฉันเลือก (นอกจากนี้ฉันมักจะทิ้งเส้นทางสัมพัทธ์ (./) เสมอดังนั้นจึงง่ายต่อการจัดการเมื่อไม่บีบอัด)
tar -cvf - ./dir-to-compress/* > /location-of-new-file/filename.tar
-C
มันก็เป็นไปได้มากกว่า (และสั้นกว่า)
ฉันคิดว่ามันควรจะเป็น:
tar czf file.tar.gz -C /var/www/ file1
ซึ่งใช้งานได้สำหรับฉัน มันบอกให้เปลี่ยนไดเรกทอรีแล้วเลือกไฟล์
ทำงานได้อย่างสมบูรณ์แบบ
cd /home; tar -czvf - /var/log/* > varlog.tar.gz
-C
(ซึ่งไม่แปลกที่เอกสารจะคลุมเครือ) สำหรับรายละเอียดดูserverfault.com/q/416002/86283