Linux下的压缩解压缩操作总结
分类:计算机 | 操作系统 | Linux | 压缩解压缩 1840
更新:2021-02-01 22:28:27编辑
1 为何linux要用tar.gz,而不用7z或zip
因为 7z 和 zip 压缩格式都不能保留 unix 风格的文件权限,比如解压出个可执行文件要重新 chmod chown 才能恢复正常。而 tar 格式可以。而 tar 本身不提供压缩,无非就是把包括所有文件的內容和权限拼成一个文件而己,所以用另外如 gzip 格式压缩。为什么是 gzip,因为几乎所有 linux 都支持而已。
2 zip格式
2.1 压缩zip文件
命令语法:
zip [参数] [打包后的文件名] [打包的目录路径]
zip命令参数列表:
- -a 将文件转成ASCII模式
- -F 尝试修复损坏的压缩文件
- -h 显示帮助界面
- -m 将文件压缩之后,删除源文件
- -n 特定字符串 不压缩具有特定字尾字符串的文件
- -o 将压缩文件内的所有文件的最新变动时间设为压缩时候的时间
- -q 安静模式,在压缩的时候不显示指令的执行过程
- -r 将指定的目录下的所有子目录以及文件一起处理
- -S 包含系统文件和隐含文件(S是大写)
- -t 日期 把压缩文件的最后修改日期设为指定的日期,日期格式为mmddyyyy
示例:
zip -r mysoft.zip ./mysoft
将当前路径下的mysoft文件夹打包成mysoft.zip
2.2 解压缩zip文件
进入zip文件所在目录,执行命令:unzip xxx.zip,但是发现这样解压缩的文件中有乱码现象,这是因为Windows下生成的zip文件中的编码是GBK/GB2312等,而linux下的默认编码格式为UTF-8,所以才会出现乱码。 解决方法:
- 通过unzip行命令解压,指定字符集:
unzip -O CP936 xxx.zip(用GBK,GB18030也可以)
- 在环境变量中,指定unzip参数,总是以指定的字符集显示和解压文件:
在/etc/environment中加入2行
UNZIP=”-O CP936” ZIPINFO=”-O CP936”
2.3 解压分卷压缩的zip文件
由于文件大小限制,先对文件进行了100MB的分卷压缩(比如用360压缩),得到文件:test.zip.001、test.zip.002、test.zip.003。上传到linux系统后,对文件进行解压:
- 先合并文件:
cat test.* > testall.zip
- 然后解压zip文件:
unzip -O CP936 testall.zip
3 tar格式
3.1 压缩
tar -cvf jpg.tar *.jpg //将目录里所有jpg文件打包成jpg.tar
tar -czf jpg.tar.gz *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用gzip压缩,生成一个gzip压缩过的包,命名为jpg.tar.gz
tar -cjf jpg.tar.bz2 *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用bzip2压缩,生成一个bzip2压缩过的包,命名为jpg.tar.bz2
tar -cZf jpg.tar.Z *.jpg //将目录里所有jpg文件打包成jpg.tar后,并且将其用compress压缩,生成一个umcompress压缩过的包,命名为jpg.tar.Z
3.2 解压缩
tar -xvf file.tar //解压 tar包
tar -xzvf file.tar.gz //解压tar.gz
tar -xjvf file.tar.bz2 //解压 tar.bz2
tar -xZvf file.tar.Z //解压tar.Z
4 tar.gz格式
4.1 压缩命令
命令格式:tar -zcvf 压缩文件名.tar.gz 被压缩文件名 可先切换到当前目录下,压缩文件名和被压缩文件名都可加入路径。
4.2 解压缩命令
命令格式:tar -zxvf 压缩文件名.tar.gz
解压缩后的文件放在当前的目录,如果想要将文件解压到指定的目录下面,可以使用如下命令:
tar -zxvf xxx.tar.gz -C /usr/local
命令中加了一个-C,可以将文件解压到/usr/local中。
5 7z格式
5.1 centos下7z文件的解压方法
安装7z工具
yum install p7zip -y
解压7z
7za x file.7z
5.2 ubuntu下7z文件的解压方法
安装7z工具
apt-get install p7zip-full
解压7z
7z x file.7z
猿导航
阅读排行榜
- 1vue和el-table使用经验-如何刷新表格数据10948
- 2three.js加载3D瓦片和3dtiles数据生成交互式地图的开源项目9497
- 3Microsoft Visual C++ Redistributable是什么,有什么作用?7274
- 4mybatis使用经验——mybatis-spring-boot-starter和mybatis的版本对应关系表(持续更新~)5839
- 5uni-app使用经验—vue页面和html页面如何互相调用接口并传参5480
- 6Intellij IDEA下的版本控制VCS的启用与关闭4894
- 7Spring学习经验—@ResponseBody注解的使用说明4890
- 8Druid异常解决经验—java.sql.SQLException url not set4512
- 9如何用批处理命令(bat脚本)启动和停止windows服务4282
- 10nuxt.js项目中如何添加和使用全局变量4158
- 11解决SpringBoot使用maven下载不了jar包的问题3497
- 12linux中解压tar.gz文件报错“gzip: stdin: invalid compressed data--format violated”3394
- 13nuxtjs asyncData使用经验—如何发起多个axios请求并携带参数3246
- 14在Nuxt.js项目的head中引用外部js文件3088
- 15在NVIDIA控制面板设置参数时提示“拒绝访问 无法应用选定的设置到您的系统”的解决方法之一3066