Tôi muốn cập nhật tệp tar với một phần nội dung được sửa đổi, bằng cách ghi đè lên tệp gốc, trong tập lệnh.
tôi đã thử tar -u
, -MỘT
và -r
, nhưng không ai làm những gì tôi muốn. Tôi cũng đã thử với --ghi đè
.
Một bài kiểm tra dễ dàng:
đĩa ~
kiểm tra mkdir
tiếng vang foo > test1.txt
mkdir test_dir
cd test_dir
thanh tiếng vang > test2.txt
đĩa CD ../..
tar cvf test.tar test
tar tvf test.tar # kiểm tra nội dung
tiếng vang barbarbar >> test/test_dir/test2.txt
tar rvf test.jar test # hoặc Avf hoặc uvf, nó giống nhau: tệp đã sửa đổi không ghi đè lên tệp gốc trong tar
-u --ghi đè
về lý thuyết sẽ "cập nhật", nhưng thực tế nó chỉ nối thêm và không nối thêm tệp đã thay đổi, vì vậy tôi thấy có hai test1.txt
và một test2.txt
có trong tar, với test2.txt
là người cũ
-A --ghi đè
về mặt lý thuyết sẽ nối thêm, nhưng lỗi ra: tar: kiểm tra: Lỗi đọc ở byte 0, trong khi đọc 1024 byte: Là một thư mục tar: Lỗi không thể phục hồi: thoát ngay bây giờ
-r --ghi đè
về mặt lý thuyết sẽ "chắp thêm", nhưng sẽ chỉ nối thêm và không ghi đè lên, vì vậy tôi thấy hai test1.txt
và hai test2.txt
trong hắc ín.
Tôi nghĩ: OK thì tar không bao gồm khả năng cập nhật tar tại chỗ. Nhưng sau đó tôi nhớ rằng điều này có thể đạt được dễ dàng bằng cách kéo thư mục mới vào tệp tar trong Gnome (tôi nghĩ rằng điều này được xử lý bởi "Trình quản lý lưu trữ"), vì vậy ít nhất là có thể.
Làm cách nào tôi có thể ghi đè lên các tệp trong tar trong dòng lệnh/tập lệnh?