1

Я создаю файл tar, а затем я распаковываю файл tar. Итак, я получаю файл .tgz, и теперь я хочу удалить предыдущий файл tar.

${gzipExe} -f --rsyncable $tarname.TAR --stdout >> $tarname.TGZ

2 ответа2

5

Обычно я одновременно архивирую файл, используя параметр 'z' с командой tar:

tar czvf allmyfiles.tar.gz *

Приведенная выше команда создает новый архивный файл с именем allmyfiles.tar.gz, который содержит все файлы в текущей папке, и архивирует его.

В противном случае просто удалите файл .tar с помощью следующей команды:

$rm $tarname.TAR

Обратите внимание, что .tar.gz используется чаще, чем .tgz.

3

У вас есть несколько вариантов. Предполагая, что вам нужна эта опция --rsyncable :

  • Сжатие и tar в один шаг (без промежуточного файла tar):
REM I think you are on Windows so...
set GZIP=--rsyncable
tar czf file.tar.gz files
  • Передать вывод tar в gzip (без промежуточного файла tar)
tar c files | gzip --rsyncable > file.tar.gz
  • Архивировать и сжимать в два этапа.
tar -cf file.tar files
gzip -f --rsyncable file.tar

Если вы просто запустите gzip file.tar вместо gzip --stdout file.tar > file.tar.gz gzip удалит файл tar для вас.

Также обратите внимание, что использование gzip --stdout file.tar >> file.tar.gz как и в вашем вопросе, фактически добавит новое содержимое gziped в file.tar.gz, что, вероятно, не то, что вам нужно.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .