在这个简短的教程中,我将展示如何在 Linux 和类 Unix 操作系统中使用“split”和“cat”命令从命令行拆分和合并文件。
我的 Linux 桌面上有很多 Linux 教程视频,我想把它们都移到我的 Google Drive 上。 问题是某些视频文件的大小超过 1 GiB。 将如此大的文件上传到 Google 驱动器实际上不是一个好方法。 尽管 Google Drive 允许我们上传高达 5TB 的文件,但我发现上传所有大文件非常耗时。
在考虑这个问题时,我认为如果我能够将这些文件分割成更小的尺寸并逐个上传它们会更好。 然后,我可以下载文件的所有部分,并在需要时将它们全部组合起来。 这只是一个例子。 您可能有不同的理由将一个大文件分成多个部分,然后再将它们组合起来。 如果您曾经遇到过这种情况,请不要担心。 有一个简单的命令行实用程序称为 “分裂” 用于将大文件拆分为多个小文件。 您可以稍后加入所有这些以制作一个文件。
内容
在 Linux 中从命令行拆分和合并文件
首先,让我们看看如何将一个大文件拆分为多个小文件。
在 Linux 中从命令行拆分文件
看看以下视频文件的大小。
$ du -h Linux Security.mp4
样本输出:
1.1G Linux Security.mp4
如您所见,视频文件大小为 1.1 GiB,上传到我的谷歌驱动器非常大。 虽然, 谷歌云端硬盘 让用户 上传文件高达 5TB 在规模上,这确实是一个耗时的过程。 以我的低速互联网连接,我估计上传需要 30 多分钟。 我不想再等那么久了。 所以,我要做的是将此文件拆分为多个较小的文件,例如每个 100 MB,以加快上传过程。
现在,让我们将上述文件拆分为多个较小的文件,例如每个 100MB。 为此,请运行:
$ split -b 100M Linux Security.mp4 ls.
上述命令将 Linux Security.mp4 文件拆分为 100MB 的块。 此命令创建名为 ls.aa, ls.ab, ls.ac.. 等等。
让我们看一下拆分大文件后的输出。
$ ls
样本输出:
'Linux Security.mp4' ls.ab ls.ad ls.af ls.ah ls.aj ls.aa ls.ac ls.ae ls.ag ls.ai ls.ak
看? Linux Security.mp4 文件已被拆分为多个文件,名为 ls.aa、ls.ab …. ls.ak 等。每个文件大小为 100MB。
现在,将它们作为电子邮件附件发送有点容易。
从命令行在 Linux 中合并文件
Save 文件夹中的所有文件。 然后,转到该文件夹并将它们组合如下。
$ cat ls.?? > Linux_security.mp4
这里,Linux_security.mp4 是输出文件名。 双问号(??) 匹配文件名中的任何两个字符的扩展名。 简单地说,文件名部分 ls. ?? 匹配所有文件名,例如 ls.aa、ls.ab ..等,并将它们全部组合成一个文件。 请注意,此命令将合并所有包含两个字符扩展名的文件。 所以,在合并文件之前一定要确定。 如果还有其他一些带有两个字母扩展名的文件,它们也会被合并到输出文件中。
另外,在合并它们时不要忘记提及正确的扩展名。 如果您想通过邮件将所有文件发送给您的朋友,请告诉他/她您发送的文件的正确扩展名。 他/她在组合它们时应该在输出文件中使用相同的文件扩展名。
如果你没有在 split 命令中指定任何参数,文件将被分割成多个较小的文件 X 作为文件名。 默认情况下,每个文件将包含 1000 行。 这里, 是每个文件名默认添加的两个字符后缀。
让我们使用 split 命令拆分同一个文件,而不需要指定任何额外的参数,如下所示。
$ split Linux Security.mp4
此命令将 Linux 安全文件拆分为多个以 x** 作为文件名的较小文件。
运行“ls”命令查看文件:
$ ls
样本输出:
Linux Security.mp4 xaj xat xbd xbn xbx xch xcr xdb xdl xdv xef xep xez xfj xaa xak xau xbe xbo xby xci xcs xdc xdm xdw xeg xeq xfa xfk xab xal xav xbf xbp xbz xcj xct xdd xdn xdx xeh xer xfb xfl xac xam xaw xbg xbq xca xck xcu xde xdo xdy xei xes xfc xfm xad xan xax xbh xbr xcb xcl xcv xdf xdp xdz xej xet xfd xae xao xay xbi xbs xcc xcm xcw xdg xdq xea xek xeu xfe xaf xap xaz xbj xbt xcd xcn xcx xdh xdr xeb xel xev xff xag xaq xba xbk xbu xce xco xcy xdi xds xec xem xew xfg xah xar xbb xbl xbv xcf xcp xcz xdj xdt xed xen xex xfh xai xas xbc xbm xbw xcg xcq xda xdk xdu xee xeo xey xfi
每个文件应包含 1000 行。 您也可以使用验证它 厕所 (字数统计)命令如下所示。
$ wc -l *
示例输出为:
142891 Linux Security.mp4 1000 xaa 1000 xab 1000 xac 1000 xad 1000 xae 1000 xaf 1000 xag 1000 xah . . . 1000 xfl 891 xfm 285782 total
要合并所有这些文件,请运行:
$ cat x* > ls.mp4
上面的命令会将所有文件合并到一个名为 ls.mp4.
有关更多详细信息,请参阅手册页。
$ man split
推荐阅读:
- 如何从 PDF 文件中拆分或提取特定页面
- 如何在 Linux 的命令行中合并 PDF 文件
结论
Linux 中可能有其他 CLI 和 GUI 工具可用于拆分或合并文件。 但是,’split’ 是预先安装的内置命令。 所以,不要费心在你的 Linux 机器上安装任何额外的工具。 此外,split 命令可以快速将文件分成多个部分。
BASHCombine FilesCommand lineLinuxLinux commandsSplit and Combine Files From Command Line in LinuxSplit Files