ฉันต้องการอัปเดตไฟล์ tar ด้วยเนื้อหาบางส่วนที่แก้ไขโดยเขียนทับไฟล์ต้นฉบับในสคริปต์
ฉันเหนื่อย น้ำมันดิน -u
, -ก
และ -ร
แต่ไม่มีใครทำในสิ่งที่ฉันต้องการ ฉันยังพยายามด้วย --เขียนทับ
.
การทดสอบอย่างง่าย:
ซีดี ~
การทดสอบ mkdir
เสียงสะท้อน > test1.txt
mkdir test_dir
ซีดี test_dir
แถบเสียงสะท้อน> test2.txt
ซีดี ../..
การทดสอบ tar cvf การทดสอบ tar
tar tvf test.tar # ตรวจสอบเนื้อหา
echo barbarbar >> test/test_dir/test2.txt
tar rvf test.jar ทดสอบ # หรือ Avf หรือ uvf ก็เหมือนกัน: ไฟล์ที่แก้ไขจะไม่เขียนทับไฟล์ต้นฉบับใน tar
-u -- เขียนทับ
ในทางทฤษฎีจะ "อัปเดต" แต่จริงๆ แล้วเป็นเพียงการต่อท้ายและไม่ต่อท้ายไฟล์ที่เปลี่ยนแปลง ดังนั้นฉันจึงเห็นสอง ทดสอบ 1.txt
และหนึ่ง ทดสอบ 2.txt
มีในน้ำมันดินด้วย ทดสอบ 2.txt
เป็นคนเก่า
-A -- เขียนทับ
ในทางทฤษฎีจะต่อท้าย แต่เกิดข้อผิดพลาด: tar: ทดสอบ: อ่านข้อผิดพลาดที่ไบต์ 0 ขณะอ่าน 1024 ไบต์: เป็นไดเรกทอรี tar: ข้อผิดพลาดไม่สามารถกู้คืนได้: ออกทันที
-r -- เขียนทับ
ในทางทฤษฎีจะ "ต่อท้าย" แต่จะต่อท้ายเท่านั้น และไม่มีการเขียนทับ ดังนั้นฉันจึงเห็นสอง ทดสอบ 1.txt
และสอง ทดสอบ 2.txt
ในน้ำมันดิน
ฉันคิดว่า: ตกลงแล้ว tar ไม่รวมถึงความเป็นไปได้ในการอัปเดต tar ในสถานที่ แต่ฉันจำได้ว่าสามารถทำได้ง่าย ๆ โดยลากโฟลเดอร์ใหม่ไปยังไฟล์ tar ใน Gnome (ฉันคิดว่าสิ่งนี้จัดการโดย "Archive Manager") ดังนั้นอย่างน้อยก็เป็นไปได้
ฉันจะเขียนทับไฟล์ใน tar ในบรรทัดคำสั่ง/สคริปต์ได้อย่างไร