代码改变世界

用tar和split将文件分包压缩

2012-11-11 11:29  JustRun  阅读(1483)  评论(0编辑  收藏  举报

出自 http://www.bytea.net/material/80-pc/312-tarsplit

记得以前用3.5寸盘的时候常需要把一个文件分成几张盘来拷贝,现在的U盘越来越大,还有众多的网上存储空间,好久没用分割文件了。不过有的时候还是需要 分割文件的,比如从虚拟主机上下载一个打包的备份文件,而网速又比较慢,容易下载一半中断。又比如需要打包备份一个硬盘里的东西,不过一张dvd的容量只 有4.7G,不够用怎么办?这就需要用到split命令了。

举例说明:
要将目录logs打包压缩并分割成多个1M的文件,可以用下面的命令:
 tar cjf - logs/ |split -b 1m - logs.tar.bz2.
完成后会产生下列文件:
 logs.tar.bz2.aa, logs.tar.bz2.ab, logs.tar.bz2.ac
要解压的时候只要执行下面的命令就可以了:
cat logs.tar.bz2.a* | tar xj

再举例:
要将文件test.pdf分包压缩成500 bytes的文件:
tar czf - test.pdf | split -b 500 - test.tar.gz
最后要提醒但是那两个"-"不要漏了,那是tar的ouput和split的input的参数。