kar*_*k87 211 files join split
我有一个大文件(例如 8GB)。我怎样才能把它分成多个部分,比如说 3 个相等的部分,然后我以后如何整合它们?
Lui*_*ado 297
有几种方法可以实现这一点。让我们从基本的开始。
让我们说我有一个图像并且它太大了(10MB)。我所做的就是:
split --bytes=1M /path/to/image/image.jpg /path/to/image/prefixForNewImagePieces
Run Code Online (Sandbox Code Playgroud)
然后把它放在一起我用猫:
cat prefixFiles* > newimage.jpg
Run Code Online (Sandbox Code Playgroud)
例如:
假设我在图像所在的文件夹中:
split --bytes=1M myimage.jpg new
Run Code Online (Sandbox Code Playgroud)
如果图像在名为图像的目录中,您也可以这样做:
split --bytes=1M images/myimage.jpg new
Run Code Online (Sandbox Code Playgroud)
如果图像在目录 /home/cyrex/images 中,您可以执行以下操作:
split --bytes=1M /home/cyrex/images/myimage.jpg new
Run Code Online (Sandbox Code Playgroud)
(在上述所有情况下,它将分成myimage.jpg1MB 块,并在块的名称前加上 new 一词。所以它们看起来像newaa, newab, newac, newad...)
如果您要拆分文本文件并希望按行拆分它,您可以这样做:
split -l 1000 book.txt new
Run Code Online (Sandbox Code Playgroud)
这会将文本文件拆分为每个 1000 行的输出文件。这是另一种拆分文件的方法,主要用于文本文件,如日志、sql 转储、csv 文件等。
然后我合并它们
cat new* > newimage.jpg
Run Code Online (Sandbox Code Playgroud)
这是一种方式。您甚至可以更改分割件的大小。只要改变写着部分--bytes=1M以--bytes=1K1千字节或1G为千兆,或像另一号码--bytes=4K为4KB块。
另一种方法是 Nautilus 的 gui 中的 compress 选项。它为您提供了将要压缩的一个或多个文件拆分为更小的兆字节大小的选项。它简单易行。
假设您有一个名为的 ISO 映像,ubuntu.iso您可以这样做:
7z a -v5m -mx0 ubuntu.7z ubuntu.iso
Run Code Online (Sandbox Code Playgroud)
这将从ubuntu.iso. 的-v5m是体积大小,以便可以将其改变为10,12,如图1,3和也米可以改变为K表示千字节等; 该-mx0开关通知的7-Zip使用无压缩,即,只是为了分割数据分成几部分。
提取只是做
7z x ubuntu.7z.001
Run Code Online (Sandbox Code Playgroud)
这样您提取第一个文件,7z 开始按顺序从以下文件中提取。你也可以这样做
7z e ubuntu.7z.001
Run Code Online (Sandbox Code Playgroud)
这在这里具有相同的效果。
使用split -b适当的数字,您可以获得三件。
数字可以是:
size=$(wc -c <"file name")
one_third=$((size/3+1))
Run Code Online (Sandbox Code Playgroud)
要重新组装,请使用 cat
cat "file name"* > "file name"
Run Code Online (Sandbox Code Playgroud)
手册页将有助于填写详细信息。