原理上是跟文件夹的分卷压缩是一样的,有些大的文件压缩后还是大,不方便拷贝,这就可以用到分卷压缩,然后再拷贝就方便很多了。我通过实例的方式去讲解实现方法。
例:Ubuntu下有一文件夹myfile,大小约为90G。
直接对文件夹分卷压缩方法:
$ tar cvzpf - myfile | split -d -b 10240m - myfile.
文件夹会以每10G的大小被分卷压缩,生成myfile.00,myfile.01…形式的分卷压缩后的文件。
这样做会很漫长,因为文件比较大,分卷压缩的文件也比较多,而我是通过以下方式进行实现的。
$ tar -jcvf myfile.tar.bz2 ./myfile/
通过以上命令,先将文件夹压缩成.bz2类型的压缩文件,大小约变成了30G左右,这时再通过以下方式进行分卷压缩。
$ tar cvzpf - myfile.tar.bz2 | split -d -b 10240m - myfile.tar.bz2.
这样就只会生成三个分卷压缩文件,会省事很多。再通过以下命令进行合成和解压:
$ cat my*>myfile.tar.gz
$ tar -zxvf myfile.tar.gz -C .
以上就会解压出我之前压缩的.bz2类型的文件,再次解压即可。
$ tar -jxvf myfile.tar.bz2 -C .
注意点:
1.通过以上方式分卷压缩后的文件类型是gzip文件类型,所以合成时不要合成.tar.gz以外的类型。
2.拷贝合成后,解压时,如果出现gzip的stdin invalid错误,中断了解压,一般是分卷压缩或拷贝出问题了,重新分卷压缩和拷贝一下就可以了。
3.分卷压缩命令最后的myfile.tar.bz2.,如果不写,默然的压缩文件名会是x00,x01…形式的。
4.参数的介绍可通过man tar命令去详细参考。