yum install -y p7zip
然后这样解压:
LANG=zh_CN.GBK 7z x filename.zip
查看zip包内容不解压
有时候只想看看包里有什么文件,不需要全解出来:
unzip -l filename.zip
这一招儿在排查问题的时候特好使,不用等解压完就能定位目标文件。
CentOS 6.8 tar.gz压缩包打开教程
tar.gz是Linux服务器上出镜率最高的压缩格式,编译安装软件、备份网站数据都离不开它,CentOS 6.8自带tar命令,不用额外安装。
tar.gz完整解压命令
tar -zxvf filename.tar.gz
各个参数啥意思说清楚:
-z:通过gzip解压-x:执行解压操作-v:显示解压过程,能看具体释放了哪些文件-f:指定文件名,这个参数必须放在最后
解压到指定目录:
tar -zxvf filename.tar.gz -C /usr/local/src/
打包和压缩
CentOS 6.8服务器上不光要解压,还得会打包,不然备份数据的时候干瞪眼:
tar -zcvf backup.tar.gz /home/wwwroot/
这招把/home/wwwroot整个目录打包压缩成backup.tar.gz,参数里的-c是创建新压缩包的意思。
只解压tar.gz里的某个文件
压缩包几百兆,就想取其中一个配置文件,全解出来太费时间:
tar -zxvf filename.tar.gz etc/nginx/nginx.conf
后面跟上包内具体路径就行,精准提货。
CentOS 6.8 服务器解压rar文件的方法
rar格式在服务器领域不算主流,但碰到客户传过来的rar包,该解还得解,CentOS 6.8不自带rar工具,得先装。
安装rar工具
去rarlab官网下载Linux版rar软件包,然后用我们刚学的tar命令解压安装,整个流程顺下来:
wget https://www.rarlab.com/rar/rarlinux-x64-5.9.0.tar.gz tar -zxvf rarlinux-x64-5.9.0.tar.gz cd rar make
安装完成后,rar命令和unrar命令就都能用了。
解压rar包
rar x filename.rar
或者用unrar:
unrar x filename.rar
注意x参数是保留压缩包内目录结构,如果只想释放文件不带路径,用e参数,服务器场景下推荐x,保持目录结构不易乱。
CentOS 6.8 服务器压缩包批量处理实战
服务器上处理压缩文件不是单打独斗,经常碰上批量操作,咱说几个实际场景里用得上的命令技巧。
批量解压多个zip包
/data/backup/目录下躺着一堆zip备份包,要全部解压:
cd /data/backup/ for i in .zip; do unzip -o "$i" -d /data/restore/; done
批量解压tar.gz
for i in .tar.gz; do tar -zxvf "$i" -C /data/restore/; done
这些循环命令在服务器日常维护中使用频率极高,建议直接存到脚本文件里复用。
查看压缩文件大小和压缩率
ls -lh filename.zip gzip -l filename.tar.gz
第一条看压缩包原始体积,第二条看tar.gz压缩前后的对比,备份文件管理多了,心里得有本账。
| 压缩包格式 | 解压命令 | 特点 |
| zip | unzip | 跨平台能力最强,Windows/Linux通吃 |
| tar.gz | tar -zxvf | Linux标配,保留文件权限属性 |
| tar.bz2 | tar -jxvf | 压缩率比gzip高,但压缩速度慢 |
| rar | rar x 或 unrar x | 非开源格式,服务器上需额外安装 |
CentOS 6.8压缩文件打开时常见报错排障
unzip: command not found
没装unzip工具,CentOS 6.8的yum源因为系统停止维护,可能得先调整源才能装,不过一般机器上都提前装好了。
tar: Child returned status 2
通常是指定的文件不存在或者权限不够,先看文件在不在,再看当前用户有没有读权限,多数情况下,切到root或者加sudo就行。
rar: No such file or directory
程序装了但找到不到命令,检查一下/usr/local/bin/下有没有rar的软链接,没有就手动建:
ln -s /usr/local/rar/rar /usr/local/bin/rar ln -s /usr/local/rar/unrar /usr/local/bin/unrar
解压文件权限变成777
Windows传上来的zip包解压后,文件权限可能变成rwxrwxrwx,这对服务器来说是个安全风险,解压完后建议根据业务需求修正:
find /data/www/ -type f -exec chmod 644 {} \;
find /data/www/ -type d -exec chmod 755 {} \;
磁盘空间不足导致解压失败
解压之前先用df -h看看磁盘剩余空间,别等解压到一半才报错,压缩包显示100MB,解压出来可能是500MB甚至更大,这个坑踩过的人懂。
CentOS 6.8服务器处理压缩文件不复杂,核心就记住:zip找unzip,tar.gz找tar,rar找rar,命令敲多了,肌肉记忆就出来了,等你在深夜的服务器前遇到一个破损的压缩包,你会发现这些命令比记在笔记里靠谱得多。
CentOS 6.8服务器压缩文件操作常见问题QA
h3:CentOS 6.8怎么解压tar.bz2文件?
tar.bz2跟tar.gz的区别主要在于压缩算法不同,解压命令也就差一个字母:tar -jxvf filename.tar.bz2,-j就是指定bzip2解压,如果报错,说明系统缺少bzip2组件,yum install -y bzip2装上就行。
h3:解压时如何避免覆盖已有文件?
unzip默认遇到同名文件会询问是否覆盖,如果想保留已有的,用unzip -n filename.zip跳过已存在的文件,tar命令则可以用tar -zxvf filename.tar.gz --skip-old-files,但如果你的tar版本太老不支持这个参数,就先备份原目录再解压,这是服务器上最稳妥的做法。
首发原创文章,作者:王坚,如若转载,请注明出处:https://idctop.com/article/793224.html


