Никакие временные файлы не используются ни одной из команд. tar
работает полностью в потоковом режиме. Упаковка и сжатие полностью отделены друг от друга, а также выполняются в механизме трубопровода при использовании опции -z
или -j
(или аналогичной).
Для каждого файла tar
он помещается в архив, он вычисляет датаграмму информации о файле, которая содержит путь к файлу, его пользователя, права доступа и т. д. c., а также его размер. Это нужно знать заранее (поэтому поместить вывод потока в архив tar непросто без использования временного файла). После этой дейтаграммы следует простое содержимое файла. Поскольку его размер известен, и он уже является частью информации о файле, конец файла однозначен. Таким образом, после этого следующий файл в архиве может следовать непосредственно. В этом процессе никакие временные файлы не нужны ни для чего.
Этот поток байтов передается любому из реализованных алгоритмов сжатия, которые также не создают никаких временных файлов. Здесь я немного разбираюсь, потому что я не знаю все алгоритмы сжатия наизусть, но все, с чем я когда-либо сталкивался, не создает временных файлов.