Как разбить большой файл + 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, если вы предпочитаете графический интерфейс. Посмотрите под 'Сохранить-> Другие параметры-> Разделить на тома'.