不常用的文件分割与合并(使用split和cat)

来源:互联网 发布:适合iphone的软件 编辑:程序博客网 时间:2024/05/01 04:47
发现自己有些土了。一朋友传给我4个分卷文件,我误用7-zip去解压,结果死活解不开。
呵呵。后来一问之下,才知道他是采用自然切割的方法,并没有压缩分卷。

原文件名为:ase1502_xe_linux.tgz
使用split命令进行分割:
F:\>split -b 90m -a 2 ase1502_xe_linux.tgz ase1502_xe_linux.0
得到文件:
2010-05-31  20:53        94,371,840 ase1502_xe_linux.0aa
2010-05-31  20:53        94,371,840 ase1502_xe_linux.0ab
2010-05-31  20:53        94,371,840 ase1502_xe_linux.0ac
2010-05-31  20:53        15,402,568 ase1502_xe_linux.0ad
合并则用:
F:\>cat ase1502_xe_linux.0* > ase1502_xe_linux_new.tgz
得到
2010-05-31  20:42       298,518,088 ase1502_xe_linux.tgz
2010-05-31  20:54       298,518,088 ase1502_xe_linux_new.tgz
挺有意思的。这下完美了。
当然也可以使用:
F:\orig>copy/b ase1502_xe_linux.tgz.00+ase1502_xe_linux.tgz.01+ase1502_xe_linux.tgz.02+ase1502_xe_linux.tgz.03 ase1502_xe_linux.tgz
ase1502_xe_linux.tgz.00
ase1502_xe_linux.tgz.01
ase1502_xe_linux.tgz.02
ase1502_xe_linux.tgz.03
已复制         1 个文件。


再一查,tar命令可以和split命令组合使用。
实现tar的分卷
笔者想把一个378MB的文件压缩成多个63MB的文件(笔者的USB为64MB),使用下面命令:
$tar czvf - dir | split -d -b 63m

然后合并命令:
$cat x* > dir.tgz

以上例子实际是由三个命令组合完成的,即用tar打包,用split分割,用cat合并。“tar czvf - dir”的意思是把dir目录打包,并输出到标准输出(argv),这样就可以直接用管道输出给split。
0 0