Действительно ли указание механизма сжатия для 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 раза больше оригинальных файлов.