Обновление одного файла в сжатом tar
Для сжатого файла архива, такого как application.tar.gz
, который имеет папку application/x/y/z.jar
среди прочих, я хотел бы иметь возможность взять самую последнюю версию z.jar
и обновить/обновить архив с ней.
Есть ли способ сделать это иначе, чем что-то вроде следующего?
tar -xzf application.tar.gz
cp ~/myupdatedfolder/z.jar application/x/y
tar -czf application application.tar.gz
Я понимаю, что переключатель -u
в tar может быть полезен, чтобы не развязывать все это, но я не уверен, как его использовать.
Ответы
Ответ 1
Ну, я нашел ответ.
Вы не можете использовать tar -u
с архивом. Таким образом, решение, которое я использовал, было следующим. Обратите внимание, что я переместил файл z.jar
в папку, созданную мной в текущем каталоге с именем application/x/y
для этой цели.
gzip -d application.tar.gz
tar -uf application.tar application/x/y/z.jar
gzip application.tar
Когда я сделал tar -tf application.tar
(после обновления, перед gzip), он появился правильно.
Ответ 2
Если файл, который вы хотите обновить, является текстовым файлом. Затем вы можете напрямую использовать редактор vim
, чтобы открыть архив, содержащий файл, и открыть его, как открытая папка с помощью редактора vim. Затем измените файл и сохраните его и закройте.
Однако, если файл является двоичным. Я понятия не имею о решении.