[Knowledge Shareing]拆分.tar文件成多个相同大小..
时间:2006-03-15 来源:wind521
今天同事问我一个问题:在windows上winrar可以把文件拆分成等量大小的多个文件,在Unix上这种功能可不可以实现,于是我就看了一下man页,真的发现这样一种用法,下面来share给大家:
选项参考:
-M, --multi-volume
create/list/extract multi-volume archive
-L, --tape-length N
change tapes after writing N*1024 bytes
下面是一个例子,大家可以参考一下: $ ls -l
total 22208
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
$ tar -c -M -L 10240 --file=disk1.tar test.tar
Prepare volume #2 for `disk1.tar' and hit return: ?
n [name] Give a new file name for the next (and subsequent) volume(s)
q Abort tar
! Spawn a subshell
? Print this list
Prepare volume #2 for `disk1.tar' and hit return: n disk2.tar
Prepare volume #2 for `disk2.tar' and hit return:
Prepare volume #3 for `disk2.tar' and hit return: n disk3.tar
Prepare volume #3 for `disk3.tar' and hit return: $ ls -l
total 66644
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
大家可以看到,现在这个文件已经被拆成了三个文件,分别是disk1.tar, disk2.tar, disk3.tar. 那如何再将拆分的文件还原呢?请参考下面:
$ ls -l
total 22228
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
$ tar -x -M --file=disk1.tar test.tar
Prepare volume #2 for `disk1.tar' and hit return: n disk2.tar
Prepare volume #2 for `disk2.tar' and hit return:
Prepare volume #3 for `disk2.tar' and hit return: n disk3.tar
Prepare volume #3 for `disk3.tar' and hit return:
$ ls -l
total 44436
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
这样就可以把文件还原了。大家可以进行一些相关的测试,可以比对一下前后文件是不是会被改变(我已测试过没有问题)。
create/list/extract multi-volume archive
-L, --tape-length N
change tapes after writing N*1024 bytes
下面是一个例子,大家可以参考一下: $ ls -l
total 22208
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
$ tar -c -M -L 10240 --file=disk1.tar test.tar
Prepare volume #2 for `disk1.tar' and hit return: ?
n [name] Give a new file name for the next (and subsequent) volume(s)
q Abort tar
! Spawn a subshell
? Print this list
Prepare volume #2 for `disk1.tar' and hit return: n disk2.tar
Prepare volume #2 for `disk2.tar' and hit return:
Prepare volume #3 for `disk2.tar' and hit return: n disk3.tar
Prepare volume #3 for `disk3.tar' and hit return: $ ls -l
total 66644
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
大家可以看到,现在这个文件已经被拆成了三个文件,分别是disk1.tar, disk2.tar, disk3.tar. 那如何再将拆分的文件还原呢?请参考下面:
$ ls -l
total 22228
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
$ tar -x -M --file=disk1.tar test.tar
Prepare volume #2 for `disk1.tar' and hit return: n disk2.tar
Prepare volume #2 for `disk2.tar' and hit return:
Prepare volume #3 for `disk2.tar' and hit return: n disk3.tar
Prepare volume #3 for `disk3.tar' and hit return:
$ ls -l
total 44436
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk1.tar
-rw-rw-r-- 1 wind wind 10485760 Mar 15 13:46 disk2.tar
-rw-rw-r-- 1 wind wind 1751040 Mar 15 13:46 disk3.tar
-rw-rw-r-- 1 wind wind 22712320 Mar 15 13:28 test.tar
这样就可以把文件还原了。大家可以进行一些相关的测试,可以比对一下前后文件是不是会被改变(我已测试过没有问题)。
相关阅读 更多 +