
У меня большой файл (например, 8 ГБ). Как разделить его на несколько частей, скажем, на 3 равные части, и как потом их объединить?
решение1
Есть несколько способов сделать это. Начнем с основных.
Используярасколотьикоткоманды:
Допустим, у меня есть изображение, и оно слишком большое (10 МБ). Все, что я делаю, это:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
а затем, чтобы собрать все это вместе, я использую cat:
cat prefixFiles* > newimage.jpg
Например:
Предположим, что я нахожусь внутри папки, где находится изображение:
split --bytes=1M myimage.jpg new
Если изображение находится в каталоге с именем images, вы также можете сделать это:
split --bytes=1M images/myimage.jpg new
Если изображение находится в каталоге /home/cyrex/images, вы можете сделать это:
split --bytes=1M /home/cyrex/images/myimage.jpg new
(Во всех приведенных выше случаях он будет разделен myimage.jpg
на части по 1 МБ и к имени каждой части будет добавлено слово new. Таким образом, они будут выглядеть как newaa
, newab
, newac
, newad
...)
Если вы делитеТекстовый файли хотите разделить его по строкам, вы можете сделать это:
split -l 1000 book.txt new
Который разделит текстовый файл на выходные файлы по 1000 строк каждый. Это еще один способ разделить файл и в основном используется для текстовых файлов, таких как журналы, дампы SQL, файлы CSV и т. д.
Затем я их объединяю.
cat new* > newimage.jpg
Это один из способов. Вы даже можете изменить размер разделенных частей. Просто измените часть, которая говорит --bytes=1M
1 --bytes=1K
килобайт или 1G для гига, или другое число, например, --bytes=4K
для частей по 4 КБ.
С использованиемНаутилус
Другой способ — опция сжатия в графическом интерфейсе Nautilus. Она дает вам возможность разделить файл или файлы, которые вы хотите сжать, на меньшие мегабайтные размеры. Это просто и легко.
Еще один способ — использовать7з
Предполагая, что у вас есть образ ISO под названием, ubuntu.iso
вы можете сделать это:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
Это создаст файлы размером 5 МБ из ubuntu.iso
. — -v5m
это размер тома, поэтому вы можете изменить его на 10, 12, 1, 3, а также m можно изменить на k для килобайт и т. д.; переключатель -mx0
сообщает 7-Zip, что не нужно использовать сжатие, то есть просто разбить данные на части.
Чтобы извлечь просто сделайте
7z x ubuntu.7z.001
таким образом вы извлекаете первый файл и 7z начинает извлекать из следующих файлов по порядку. Вы также можете сделать
7z e ubuntu.7z.001
что здесь имеет тот же эффект.
решение2
Используя split -b
соответствующее число, можно получить три детали.
Число может быть:
size=$(wc -c <"file name")
one_third=$((size/3+1))
Для повторной сборки используйте cat
cat "file name"* > "file name"
Страницы руководства помогут заполнить подробную информацию.
решение3
Гном раскололся?http://gnome-split.org/
GNOME Split — это инструмент, позволяющий разделять файлы и объединять их обратно. Он написан на Java и использует пользовательский интерфейс GTK+ (благодаря проекту java-gnome). Цель — предложить собственную реализацию похожих проектов, которая может обрабатывать несколько форматов файлов (например, Xtremsplit).
http://www.omgubuntu.co.uk/2010/08/split-large-files-easily-in-ubuntu-with-gnome-split/
решение4
Бесплатная утилита для разделения и слияния файлов, разработанная на Java. Это небольшое приложение, которое позволяет пользователю разделить любой тип файла на меньшие размеры в КБ, МБ или ГБ.
Он доступен как для Linux, так и для Windows.
WoodCutter предлагает 3 способа обратного слияния исходных файлов. WoodCutter создает файл слияния, который может быть обработан приложением WoodCutter для обратного объединения всех файлов. В случае, если у получателя разделенных файлов не установлен WoodCutter, то исходный файл также может быть получен, поскольку WoodCutter также создает пакетный файл и файл сценария оболочки для обратного слияния файлов. Пакетный файл будет использоваться на платформе Windows, а сценарий оболочки будет использоваться на платформах Linux.