2010-06-02 36 views
14

Với tệp nén được lưu trữ như application.tar.gz có một thư mục application/x/y/z.jar trong số các tệp khác, tôi muốn có thể lấy phiên bản mới nhất của z.jar và cập nhật/làm mới lưu trữ với nó .Cập nhật một tệp trong một tệp nén được nén

Có cách nào để thực hiện việc này ngoài cách khác không?

tar -xzf application.tar.gz 
cp ~/myupdatedfolder/z.jar application/x/y 
tar -czf application application.tar.gz 

Tôi hiểu -u switch trong tar có thể được sử dụng để tránh phải tar toàn bộ điều, nhưng tôi không chắc chắn làm thế nào để sử dụng nó một cách chính xác.

Trả lời

19

Vâng, tôi đã tìm thấy câu trả lời.

Bạn không thể sử dụng tar -u bằng kho nén. Vì vậy, giải pháp tôi đã sử dụng là như sau. Lưu ý rằng tôi đã chuyển tệp z.jar vào thư mục mà tôi đã tạo trong thư mục hiện tại có tên là application/x/y cho mục đích này.

gzip -d application.tar.gz 
tar -uf application.tar application/x/y/z.jar 
gzip application.tar 

Khi tôi đã thực hiện tar -tf application.tar (sau khi cập nhật, trước khi gzip) nó hiển thị chính xác.

4

Nếu tệp bạn muốn cập nhật là tệp văn bản. Sau đó, bạn có thể sử dụng trình soạn thảo vim trực tiếp để mở tarball chứa tệp và mở nó, giống như thư mục mở bằng trình soạn thảo vim. Sau đó sửa đổi các tập tin và lưu nó và bỏ thuốc lá.

Tuy nhiên, nếu tệp là nhị phân. Tôi không có ý tưởng về giải pháp.

Các vấn đề liên quan