上传 较大的文件常常会困扰我们,不用着急,其实我们可以在网络情况较差时,将大文件分割成设定的文件大小,然后再进行文件进行传输,以成功传输文件。
在本教程中,我们将实例演示如何将较大的 tar 压缩文件分割成多个设定大小的块。tar 文件格式是 Linux 世界最为常用的压缩文件格式,而分割文件则需要用到 split 实用工具。
1] 将 tar 文件分割成多个部分
在使用相应工具之前,我们首先了解下它们各自的语法:
# tar options archive-name files # split options file "prefix”
下面,我们通过几个实例,来详细说明如何使用这两个工具达到分割文件的目的。
例1、将 tar 压缩包分割成 10M 大小
假设当前目录有一个”example”文件夹,通过 tar 命令压缩,然后再使用 split 命令分割成 10M 大小的部分,全部命令如下:
# tar -zcvf example.tar.gz ./example/ # split -b 10M example.tar.gz "example.tar.gz.part"
查询相关文件,就会看到已经成功将大文件进行了分割:
图.1 查看分割结果
从图.1 可以看出,一个较大的文件被分割成指定的大小,最后不足指定大小会按实际大小保留。split 命令中的 -b 参数用于指定每个文件块的大小,也就是分割部分的大小。而”example.tar.gz.part”则用于指定每个分割块文件的前缀,之后,split 命令会根据前缀生成对应的分割文件。
例、2 tar 命令同 split 命令配合使用
上面的示例是分步骤操作,先生成压缩文件,再进行分割。事实上这样的步骤是可以配合完成的,只需要一条命令即可实现对应操作:
# tar -zcvf - ./example/ | split -b 50M - "example.tar.gz.part"
示例命令中使用了特殊的占位符”-“,它表示将 tar 生成的内容直接传给 split 命令,并使用该结果再进行分割。
2] 如何连接分割文件
如果只能将文件分割保存,但不能在需要使用时进行正确连接恢复出原文件,那么这样的文件分割是毫无意义的。幸好我们可以在 Linux 系统使用 cat 命令完成分割文件的连接。
# cat example.tar.gz.part* > example.tar.gz.joined
之后,查看文件详情,并进行解压测试,可以验证连接文件与原文件一致:
# ls -al example.tar.gz example.tar.gz.joined # tar -t example.tar.gz.joined
图.2 验证连接文件
从图.2 可以看出,通过 cat 命令连接分割文件后的连接文件与原压缩文件具有相同的大小,并且可以正常解压。
整个操作非常简单,我们只需要知道并理解如何使用 tar 和 split 实用程序的各种选项即可。