У вас нет файла ~/.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
tar
записывает имя и другие метаданные о ваших сохраненных файлах внутри архива — одна только эта информация требует определенного количества байтов для хранения каждого файла.
Внутри tar-файла также может быть много пустого места, предположительно из-за блокировки. В нескольких узких тестах я сохранил файл с нулевыми байтами и получил tar-файл размером 2560 байт; 1000 файлов с нулевым байтом создали архив размером ~1,5 МБ.
Поскольку вы используете tar
без флага сжатия (, такого как z
), вы не получите ничего, кроме файла большего размера.
Исторический TAR
1977 года записывает 512 байт метаданных вместе с каждым файлом.
Если вы заархивируете файл размером 500 байт, это более чем удвоит пространство, необходимое в архиве, по сравнению с содержимым обычного файла.
Если вы сравните это с накладными расходами для файлов в файловой системе, это, как правило, все же меньше, чем требуется файловой системе в качестве всего пространства для файла.
Кстати, :В 1997 году Solaris представила новый расширенный TAR
формат архива. Этот формат был стандартизирован POSIX.1 -2001. Он называется pax
или tar with extended headers
.
Этот tar with extended headers
поддерживает архивирование меток времени с произвольным разрешением и имен файлов произвольной длины. Для архива TAR
с расширенными заголовками требуется не менее 1536 байт на файл. Это все еще не больше, чем накладные расходы типичной файловой системы, поскольку файловым системам требуется информация об индексных узлах, запись каталога, ACL и другие расширенные метаданные, и обычно размер файла округляется до 1..8 Кбайт при сохранении содержимого файла внутри списка. блоков фонового хранилища файловой системы.