it-swarm-ru.tech

Разбить большой файл на мелкие кусочки

Как разбить большой файл + 4 ГБ на файлы меньшего размера 500 МБ каждый.

И как мне повторно собрать их снова, чтобы получить исходный файл?

66
Stefan

Вы можете использовать split и cat .

Например что-то вроде

$ 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

(при условии, что Shell сортирует результаты глобализации Shell - и количество частей не превышает системно-зависимый предел аргументов)

Вы можете сравнить результат через:

$ cmp foo foo_2
$ echo $?

(который должен вывести 0)

Кроме того, вы можете использовать комбинацию find/sort/xargs для повторной сборки частей:

$ find -maxdepth 1 -type f -name 'foo.*'  | sort | xargs cat > foo_3
80
maxschlepzig

Вы также можете сделать это с Archive Manager, если вы предпочитаете графический интерфейс. Посмотрите под 'Сохранить-> Другие параметры-> Разделить на тома'.

4
user1498