Мне нужно сделать резервную копию довольно большого каталога, но я ограничен размером отдельных файлов. Я хотел бы по существу создать tar.(gz|bz2)
архив, который разделен на максимальные архивы 200 МБ. Clonezilla делает что-то похожее на это, разбивая резервные копии изображений, названные так:
sda1.backup.tar.gz.aa
sda1.backup.tar.gz.ab
sda1.backup.tar.gz.ac
Есть ли способ, которым я могу сделать это в одной команде? Я понимаю, как использовать split
команду, но мне бы не хотелось создавать один гигантский архив, а затем разбивать его на более мелкие архивы, поскольку это удвоило бы дисковое пространство, необходимое для первоначального создания архива.
Ответы:
Вы можете передать tar в команду split:
В некоторых системах * nix (например, OS X) вы можете получить следующую ошибку:
В этом случае попробуйте это (обратите внимание
-b 200m
):Если вы пытаетесь разделить файл, чтобы уместить его на диске, отформатированном в FAT32, используйте ограничение в 4294967295. Например:
источник
cat sda1.backup.tar.gz.* | tar xzvf -
делать работу?split
по умолчанию устанавливает имена файлов так, чтобы при сортировке по LOCALE (что делается с помощью оболочки), они будут в правильном порядке.tar czf ...
безv
и объединитьcat backup.tar.gz.* | tar tar xzf -
безv
. Я не вижу никакой выгоды от подробного вывода здесьv
.tar cvzf - Xcode.app/ | split -b 2000m - /Volumes/PH/xcode/xcode.tgz
(используется сcd /Applications/
) Спасибо вам большое :)В macOS
split
команда работает немного иначе:источник
Просто добавьте: Поскольку максимально допустимый размер файла в vfat / fat32 составляет 2 ^ 32 минус 1 (4294967295 байт), команда split с максимально допустимым размером файла в такой файловой системе:
источник
Вам понадобится скрипт для автоматизации перемещения файла псевдо-tape.tar под новым именем:
источник
-M --tape-length
. Однако этот ответ игнорирует запрос OP на решение, использующее сжатие gzip или bzip2.tar
клоне tar, который называетсяgtar
(GNU tar). Этот tar-клон поддерживает создание многотомных архивов, но с заметной вероятностью не может / не хочет извлекать из этих многотомных архивов, поскольку неправильно утверждает, что последующий том не является правильной частью продолжения.