Как разбить большой файл + 4 ГБ на более мелкие файлы размером около 500 МБ каждый.
И как мне снова собрать их, чтобы получить оригинальный файл?
Как разбить большой файл + 4 ГБ на более мелкие файлы размером около 500 МБ каждый.
И как мне снова собрать их, чтобы получить оригинальный файл?
Ответы:
Вы можете использовать сплит и кот .
Например что-то вроде
$ split --bytes 500M --numeric-suffixes --suffix-length=3 foo foo.
(где входное имя файла fooи последний аргумент - выходной префикс). Это создаст файлы как foo.000 foo.001...
Та же команда с короткими опциями:
$ split -b 100k -d -a 3 foo foo
Вы также можете указать «--line-bytes», если хотите разделить границы строк, а не просто точное количество байтов.
Для повторной сборки сгенерированных частей вы можете использовать, например:
$ cat foo.* > foo_2
(при условии, что оболочка сортирует результаты подстановки оболочки - и количество частей не превышает системно-зависимый предел аргументов)
Вы можете сравнить результат через:
$ cmp foo foo_2
$ echo $?
(который должен вывести 0)
Кроме того, вы можете использовать комбинацию find / sort / xargs для повторной сборки частей:
$ find -maxdepth 1 -type f -name 'foo.*' | sort | xargs cat > foo_3
man split cat md5sum
cat foo.{000..NNN}где NNNпоследний ожидаемый кусок. Таким образом, вы получите сообщение об ошибке, если одна из частей отсутствует. Но обратите внимание, что -dдля получения числовых суффиксов характерно разделение GNU; на других платформах вы должны сделать с foo.aaa, foo.aabи т.д.
split, KB = 1000, K = 1024, MB = 1000 * 1000, M = 1024 * 1024 и т. Д.
... cat > foo_3быть ... cat >>foo_3?
rarи 7zipчасто используются для облегчения сборки таких кроссплатформенных
Вы также можете сделать это с Archive Manager, если вы предпочитаете графический интерфейс. Посмотрите под 'Сохранить-> Другие параметры-> Разделить на тома'.