独角兽企业重金招聘Python工程师标准>>>
我们上传东西的时候,由于文件过大而不能上传,或者不给上传,最明显的就是发邮件了,附件最大5M,有的10M。如果超过了就郁闷了。这个时候,如果能把压缩的东西,分割开来就比较爽了,windows下面我想大家知道怎么分割,利用winrar,winzip图型化设置压缩出来的块的大小。但是在linux下面有没有这样的方法了,linux下面有rar命令,有zip命令,windows下面这二种方式可以分割压缩,我想linux下面绝对也是可以的。下面是我尝试过程的记录:
一,rar分卷压缩和合并解压
rar -h
我们会发现以下参数,要创建多大的卷。
v Create volumes with size autodetection or list all volumes
v<size>[k,b]Create volumes with size=<size>*1000 [*1024, *1]
[zhangy@BlackGhostawksed]$rara-v5mgoogle.rarGoogle_Maps_API.doc//-v和5m之间不要有空格RAR3.92Copyright(c)1993-AlexanderRoshal10FebSharewareversionTypeRAR-?forhelpEvaluationcopy.Pleaseregister.Creatingarchivegoogle.rarAddingGoogle_Maps_API.docCalculatingthecontrolsumCreatingarchivegoogle.part2.rar...Google_Maps_API.docCalculatingthecontrolsumCreatingarchivegoogle.part3.rar...Google_Maps_API.docOKCalculatingthecontrolsumDone[zhangy@BlackGhostawksed]$unrarxgoogle.part1.rar//合并并解压UNRAR3.90freewareCopyright(c)1993-AlexanderRoshalExtractingfromgoogle.part1.rarExtractingGoogle_Maps_API.docExtractingfromgoogle.part2.rar...Google_Maps_API.doc76%Extractingfromgoogle.part3.rar...Google_Maps_API.docOKAllOK
二,zip分卷压缩和合并解压
zip -h2
你会发现,分卷参数-s,意思是说分割成多大的卷
Splits (archives created as a set of split files):
-s ssize create split archive with splits of size ssize,where ssize nm
n number and m multiplier (kmgt, default m), 100k -> 100 kB
下面的意思是说如果是分卷的了,用 -s 0 --out把分卷合成一个
If input is split, output will default to same split size
Use -s=0 or -s- toturn off splitting to convert split to single file:
zip in_split_archive -s 0 --out out_single_file_archive
用zip来分卷压缩时,他必须是.zip的形势,他的流程是这样的,先把一般文件压缩成.zip的文件,然后在将.zip的文件分成多少块,如果你不这样坐呢,会提示错误的。
[zhangy@BlackGhost awksed]$ zip -s 4m Google_Maps_API.doc
zip error: Invalid command arguments(archive name must end in .zip for splits)
[zhangy@BlackGhostawksed]$zipgoogle.zipGoogle_Maps_API.doc//先压缩不然就报上面的错adding:Google_Maps_API.doc(deflated12%)[zhangy@BlackGhostawksed]$zip-s4mgoogle.zip--outziptest//分卷copying:Google_Maps_API.doc[zhangy@BlackGhostawksed]$zipziptest-s0--outgoogle_bak.zip//这样合卷有问题copying:Google_Maps_API.doc[zhangy@BlackGhostawksed]$catziptest.z*>google_bak.zip//利用cat来合卷[zhangy@BlackGhostawksed]$unzipgoogle_bak.zip//解压
上面呢用zip来分卷是没有问题的,但是合卷的时候就有问题了,zip -s 0 --out这样的方式,合出来的卷,大约只有分卷前的一半,这就搞的我很无语了,并且解压的时候,提示我输入密码,在次无语,只好有cat来合并了,还好合并后,解压没有任何问题。
三,利用split来分卷,cat来合并分卷
我花了很长时间去研究tar的参数,研究了好长时间,还是没有找到可以分卷的参数,英语还是不过关啊,唉。不过我们可以借助split来分卷
[zhangy@BlackGhostawksed]$tarczvfgoogle.tar.gzGoogle_Maps_API.docGoogle_Maps_API.doc[zhangy@BlackGhostawksed]$split-d-b4mgoogle.tar.gz[zhangy@BlackGhostawksed]$catx*>google_bak.tar.gz[zhangy@BlackGhostawksed]$tarzxvfgoogle_bak.tar.gzGoogle_Maps_API.doc