如何把大的‘tar‘存档文件分割成特定大小的多个文件

时间:2025-03-10 09:56:38

你担心通过网络传输或者上传大型文件吗? 现在不用再担心了,因为你可以通过分割你的文件为指定大小块,以比特移动你的文件来处理缓慢的网速。

我们在这里应该简要地利用存档文件地创建斌且分割它们为一个所选大小块。我们使用tar,在Linux上最流行的存档工具之一并使用split工具帮助我们分割存档文件成小块。

在我们进一步前,我们注意如何使用这些工具,tar和split命令的一般语法如下:

# tar options archive-name files 
# split options file "prefix”

我们研究一些示例来演示主要概念。

示例1:我们可以按如下创建一个存档文件:

[root@rockygu ~]# tar -cvjf .br2 test/*
test/fold/
test/
test/
test/
test/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/
test/
test/
test/
[root@rockygu ~]# ls
test  .br2

要确认这个存档文件已经被创建并且也检查它的大小,我们可以使用ls命令:

[root@rockygu ~]# ls -lh .br2
-rw-r--r-- 1 root root 2.9M Jul  3 22:21 .br2

接着使用split工具,我们按以下把.br2存档文件分割为每个尺寸1M的小块:

[root@rockygu ~]# split -b 1M .br2 "."
[root@rockygu ~]# ls -lh
total 5.8M
drwxr-xr-x 4 root root  177 Jul  3 09:04 test
-rw-r--r-- 1 root root 2.9M Jul  3 22:21 .br2
-rw-r--r-- 1 root root 1.0M Jul  3 22:26 .
-rw-r--r-- 1 root root 1.0M Jul  3 22:26 .
-rw-r--r-- 1 root root 917K Jul  3 22:26 .

如你从以上命令输出所见,tar存档文件已经被分成了3个部分。

注意:在以上split命令中,选项-b用于指定每个块的尺寸,而"."是分割后创建的每个块文件名称的前缀。

示例2:在这个实例中,我们按如下使用管道连接tar的输出到split:

[root@rockygu ~]# tar -cvzf - test/* | split -b 500K - "test_2."
test/fold/
test/
test/
test/
test/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/
test/
test/
test/

确认这些文件:

[root@rockygu ~]# ls -lh test_2.*
-rw-r--r-- 1 root root 500K Jul  3 23:41 test_2.
-rw-r--r-- 1 root root 500K Jul  3 23:41 test_2.
-rw-r--r-- 1 root root 500K Jul  3 23:41 test_2.
-rw-r--r-- 1 root root 500K Jul  3 23:41 test_2.
-rw-r--r-- 1 root root 500K Jul  3 23:41 test_2.
-rw-r--r-- 1 root root 449K Jul  3 23:41 test_2.

在这个示例中,如你注意到我们不需要指定一个存档名称,只要使用'-'符号。

在分割后如何组合tar文件

在Linux中成功分割tar文件或者任何大型文件后,你可以使用cat命令组合这些文件。使用cat是执行组合操作的最高效和可靠方法。

要组合回所有块或tar文件,我们发出以下命令:

[root@rockygu back]# ls
test_2.  test_2.  test_2.
test_2.  test_2.  test_2.
[root@rockygu back]# cat test_2.* > 
[root@rockygu back]# ls
         test_2.  test_2.  test_2.
test_2.  test_2.  test_2.

我们能够看到在运行cat命令后,它组合我们先前创建的所有小块成相同大小的原先tar存档文件。

解压组合回的文件,检查其中内容:

[root@rockygu back]# tar -xvzf 
test/fold/
test/
test/
test/
test/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/Rocky/
test/
test/
test/
test/