上传 较大的文件常常会困扰我们,不用着急,其实我们可以在网络情况较差时,将大文件分割成设定的文件大小,然后再进行文件进行传输,以成功传输文件。

在本教程中,我们将实例演示如何将较大的 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 实用程序的各种选项即可。

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注