размер папки архива tar больше исходного

У вас нет файла ~/.zshrc, поэтому rm ~/.zshrcзавершается с ненулевым -значением. Поскольку rm ~/.zshrcявляется первой командой в длинном списке команд, связанных с &&, ни одна из следующих команд не выполняется. curl— последняя команда в этом списке.

Решение #1 :используйте rm -fвместо rmили не заканчивайте строки на &&.

Более того, вы поставили set -eпрямо перед своим блестящим знаменем. Это приводит к тому, что ваш скрипт завершает работу при первой неожиданно неудачной команде. Таким образом, удаления &&будет недостаточно.

Решение #2 :используйте rm -fили завершите свои rmлинии с помощью || trueили|| :

Заключение :измените все ваши rm foo 2> /dev/null &&наrm -f foo

-2
16.12.2019, 07:54
2 ответа

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

Внутри tar-файла также может быть много пустого места, предположительно из-за блокировки. В нескольких узких тестах я сохранил файл с нулевыми байтами и получил tar-файл размером 2560 байт; 1000 файлов с нулевым байтом создали архив размером ~1,5 МБ.

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

1
28.01.2020, 05:16

Исторический TAR1977 года записывает 512 байт метаданных вместе с каждым файлом.

Если вы заархивируете файл размером 500 байт, это более чем удвоит пространство, необходимое в архиве, по сравнению с содержимым обычного файла.

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

Кстати, :В 1997 году Solaris представила новый расширенный TARформат архива. Этот формат был стандартизирован POSIX.1 -2001. Он называется paxили tar with extended headers.

Этот tar with extended headersподдерживает архивирование меток времени с произвольным разрешением и имен файлов произвольной длины. Для архива TARс расширенными заголовками требуется не менее 1536 байт на файл. Это все еще не больше, чем накладные расходы типичной файловой системы, поскольку файловым системам требуется информация об индексных узлах, запись каталога, ACL и другие расширенные метаданные, и обычно размер файла округляется до 1..8 Кбайт при сохранении содержимого файла внутри списка. блоков фонового хранилища файловой системы.

0
28.01.2020, 05:16

Теги

Похожие вопросы