Действительно ли указание механизма сжатия для tar непосредственно использует меньше промежуточного дискового пространства, чем сначала сжатие, а затем сжатие?

Когда я использую tar заархивировать каталог, а затем сжать его отдельно, используя, например, xz, будет момент, когда у меня есть три файла в моей системе - dir, dir.tar а также dir.tar.xz, Как только сжатие завершено, dir.tar удален, но, похоже, я все еще должен убедиться, что у меня достаточно свободного дискового пространства для размещения всех трех файлов в этой настройке.

При использовании флага сжатия с tar напрямую, сжатый файл создается без наблюдаемого .tar промежуточный, и, похоже, мне нужно только свободное место, равное каталогу и сжатому файлу.

Сначала я выдвигал гипотезу о том, что, возможно, архив tar был создан и удален постепенно, так как он был сжат, но в то же время я помню, что где-то читал, что весь архив tar должен быть создан перед сжатием. Я не могу наблюдать какой-либо временный tar-файл, скрытый или нет.

Нужно ли использовать tar с флагом сжатия на самом деле меньше свободного дискового пространства, чем при первом использовании tar с последующей утилитой сжатия? Почему / почему нет (возможно, шаг за шагом, что делает tar+ флаг сжатия)?

1 ответ

Решение

Да, используя флаги сжатия в tar командовать напрямую (например, tar czf) уменьшит использование промежуточного диска, так как он не создает никакого временного несжатого файла tar, а скорее использует каналы, чтобы передать стандартный вывод tar непосредственно в stdin утилиты сжатия.

В зависимости от того, как трубы реализованы в вашей конкретной системе, tar может показаться, что он записывает файл, но этот файл на самом деле будет очередью FIFO без заметного потребления пространства.

Без флага:
Файлы> tar = оригинальные файлы + .tar одинакового размера
.tar > gzip = .tgz = исходные файлы + .tar + .tgz
Общее использование диска непосредственно перед удалением.tar в 2-3 раза превышает исходные файлы в зависимости от степени сжатия.

С флагом:
Файлы> tar > gzip = files + .tgz
В худшем случае это в 2 раза больше оригинальных файлов.

Другие вопросы по тегам