两大主流 *** 作系统Windows和Linux有着接近百分百的用户(单指桌面和服务器,特此申明,以防杠精)。
现在很多软件(这里想说的是尤其是游戏软件和专业的软件)和数据都越做越大,而带宽并不能时刻满足我们的需求,或者是分享文件的时候,比如,QQ或者微信分享软件,文档等等数据,会有所限制(微信或者QQ传输文件会对微信和QQ的服务器以及带宽给到压力,因此,会有限制文件的大小的情况),或者某些同学满心欢喜的下载了n多小电影,可某个时刻发现,磁盘满了!!!不能愉快的存储这些小电影了!!!这些情况使得我们并不能自由的共享文件和存储文件,也因此,时常成为我们的痛点,而文件的压缩和解压缩使得这些痛点不那么痛了(虽然仍然显得很麻烦,但至少有了解决这些痛点的方案,不是吗??)。
那么,我们有必要回顾一下压缩和解压缩技术的历史。在互联网之前的DOS时代,受制于硬盘技术的发展,硬盘通常是十分小的(以现在的眼光来看,很多同学会觉得等于没有,毕竟,几百M的硬盘,几百k的软盘,几M的软盘,现如今,很可能一个软件就塞满了),互联网时代的前期呢,电话线拨号,网速几十k的时代本人有幸经历过(暴露了年龄了,惭愧!!!),给朋友分享软件,有的时候会成为不可能完成的任务(一秒几十byte的传输速度可以让人怀疑人生)。也因此,在电脑的初期就有了压缩文件的需求,毕竟,通过压缩技术,节约宝贵的磁盘空间和带宽,会给你带来经济上和时间上的好处。
在Windows是真正的霸主的时代(80年代到21世纪初),曾经有过很多压缩软件,但,大浪淘沙,现在主流的压缩软件就剩下WinRAR了,该软件凭借简单,易用,支持的压缩文件种类多,压缩和解压缩方式多,可加密等等特性成为了收费软件(不购买就请你看广告,哈哈,国人一般使用破解版WinRAR,可能大部分人并不知道WinRAR是收费软件,闲话,可忽略)。
说了以上那么多,其实主要就是想说一下,WinRAR的分卷压缩和分卷解压缩功能。
分卷压缩等于是把文件(夹)压缩后自动按照你设定的参数分卷,接压缩指得是分卷压缩的逆向 *** 作。
例如,我有一个20M的文件夹,node14:
我想把这个分卷压缩成每个5M的文件,大概应该是这样 *** 作的:
压缩出的文件上传到Linux服务器内,大概应该是这样的:
[root@centos1 node]# ll total 26268 -rw-r--r-- 1 root root 5242880 Oct 19 07:52 node14.z01 -rw-r--r-- 1 root root 5242880 Oct 19 07:52 node14.z02 -rw-r--r-- 1 root root 5242880 Oct 19 07:52 node14.z03 -rw-r--r-- 1 root root 5242880 Oct 19 07:52 node14.z04 -rw-r--r-- 1 root root 5242880 Oct 19 07:52 node14.z05 -rw-r--r-- 1 root root 683959 Oct 19 07:53 node14.zip
这样的文件在Windows下,解压应该是这样的:
那么,在Linux下,这些分卷压缩文件怎么解压缩呢?
答案是,在Linux下,没有方法可以解压,但可以有方案解压这些分卷压缩文件!!!!看了很多博客,都是Linux下cat 所有文件 >新文件 但,其实是么有什么卵用的,因为新的压缩文件并不完整。实验如下:
[root@centos1 node]# cat node14.z* > node-all.zip [root@centos1 node]# ls -alh total 52M drwxr-xr-x 2 root root 134 Oct 20 09:59 . dr-xr-x---. 11 root root 4.0K Oct 19 07:08 .. -rw-r--r-- 1 root root 5.0M Oct 19 07:52 node14.z01 -rw-r--r-- 1 root root 5.0M Oct 19 07:52 node14.z02 -rw-r--r-- 1 root root 5.0M Oct 19 07:52 node14.z03 -rw-r--r-- 1 root root 5.0M Oct 19 07:52 node14.z04 -rw-r--r-- 1 root root 5.0M Oct 19 07:52 node14.z05 -rw-r--r-- 1 root root 668K Oct 19 07:53 node14.zip -rw-r--r-- 1 root root 26M Oct 20 09:59 node-all.zip [root@centos1 node]# unzip node-all.zip Archive: node-all.zip warning [node-all.zip]: zipfile claims to be last disk of a multi-part archive; attempting to process anyway, assuming all parts have been concatenated together in order. Expect "errors" and warnings...true multi-part support doesn't exist yet (coming soon). warning [node-all.zip]: 26214400 extra bytes at beginning or within zipfile (attempting to process anyway) file #1: bad zipfile offset (local header sig): 26214404 (attempting to re-compensate) creating: node14/ inflating: node14/brunch.tar.gz inflating: node14/n.tar.gz inflating: node14/node-v14.17.1-linux-x64.tar.xz file #5: bad zipfile offset (local header sig): 1888779 (attempting to re-compensate) file #5: bad zipfile offset (EOF): 1888779 file #6: bad zipfile offset (lseek): 30318592 inflating: node14/systeminfo.sh [root@centos1 node]# echo $? 3
可以看到,解压缩后的文件有缺失,并且结果就提示错的,报错:warning [node-all.zip]: zipfile claims to be last disk of a multi-part archive
当然,换另一种方法还是无效(解压缩后的文件大致只有正常的一半左右):
[root@centos1 node]# zip node14.zip node14.z01 node14.z02 node14.z03 node14.z04 node14.z05 -s=0 --out 2222.zip adding: node14.z01 (deflated 0%) adding: node14.z02 (deflated 0%) adding: node14.z03 (deflated 0%) adding: node14.z04 (deflated 0%) adding: node14.z05 (deflated 0%) [root@centos1 node]# ls 2222.zip node14.z01 node14.z02 node14.z03 node14.z04 node14.z05 node14.zip node-all.zip [root@centos1 node]# unzip 2222.zip Archive: 2222.zip creating: node14/ inflating: node14/brunch.tar.gz inflating: node14/n.tar.gz inflating: node14/node-v14.17.1-linux-x64.tar.xz error: invalid compressed data to inflate bad CRC d8a765ad (should be 021ea342) inflating: node14/npm.tar.gz inflating: node14/pm2.tar.gz inflating: node14/systeminfo.sh replace node14.z01? [y]es, [n]o, [A]ll, [N]one, [r]ename: A inflating: node14.z01 inflating: node14.z02 inflating: node14.z03 inflating: node14.z04 inflating: node14.z05 [root@centos1 node]# du -sh node14 14M node14
总结起来就是,在Windows下分卷压缩的文件,在Linux下无法解压缩。
那么,有一种解压缩方案,就是搭建Samba服务器,借用Windows的WinRAR,直接将文件解压缩到Linux内。
Samba服务器的搭建没什么好说的,比较基础的东西,只是有几处细节需要注意:
1,用户权限需要做好限制,以保护Linux主机。
2,Linux共享出来的路径需要有要登陆用户的权限。
3,如果怕麻烦,请关闭防火墙和selinux。
简略安装Samba流程
最终效果如下:
可以像在Windows下一样,右键解压啦,解压的文件就在 /home/zsk/目录内。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)