Я создал файл tar.gz (используя графический интерфейс, а не командную строку). Как я могу обновить его с помощью команды добавления новых файлов и обновления измененных файлов?
Обычно вы используете для этого флаг -u. Со страницы руководства tar:
blockquote>-u, --update only append files newer than copy in archive
, поэтому эта последовательность будет делать то, что вам нужно:
# First create the tar file. It has to be UNCOMPRESSED for -u to work tar -cvf my.tar some-directory/ # ... update some files in some-directory # ... add files in some-directory # Now update only the changed and added files tar -uvf my.tar some-directory/ # Compress if desired gzip my.tar
Для более подробного просмотра см. Здесь: 112] http://www.gnu.org/software/tar/manual/html_node/how-to-update.html
Вы не можете обновить сжатый архив TAR (.tar.gz) за один шаг. Но, если у Вас есть достаточно свободного пространства, можно сделать это:
Извлеките .tar файл из .tar.gz файла:
gunzip filename.tar.gz
Обновление распаковало .tar файл с tar -u
команда:
tar -uf filename.tar new_file
Сожмите обновленный .tar файл:
gzip filename.tar
Если у Вас есть многоядерный ЦП, я рекомендую использовать pigz
вместо gzip
для извлечения и создают .gz файлы. (pigz
многопоточная реализация gzip
)
Просто замена gzip
/gunzip
команды к pigz
/unpigz
.
Если вы собираетесь делать это несколько раз, оптимизация может быть:
if [[ -f my.tar.gz ]]; then
if [[ ! -f my.tar ]]; then
echo 'No tar, unzipping tar.gz'
gunzip my.tar.gz
fi
tar -uvf my.tar file1 file2 file_new
gzip -fk my.tar # This keeps a copy of the tar.
# -f --force overwrite existing .tar.gz
# -k --keep Keep the input file (.tar file)
else
tar -cvzf my.tar.gz file1 file2
fi
Если вы хотите обновить определенный файл в файле *.tar.gz
, просто выполните следующее:
Введите vi
, откуда доступен файл tar
/home>vi
Например, если вы хотите изменить simple.tar.gz , который находится в каталоге /home/test/
: kbd> Enter kbd> вы получите список папок и файлов, переместите курсор туда, где вы хотите изменить И нажмите Enter kbd>. Будет показан редактор vi
конкретного файла. Затем i
вариант изменить файл. После удачной смены. Нажмите клавишу Esc kbd> и выберите :wq
для записи и выхода из файла. Затем используйте :q
, чтобы выйти из списка файлов.