在Linux下解压含有中文的ZIP压缩包一直都是个难题。。因为ZIP不保存编码的特性,Windows下压缩的ZIP包放到Linux下解压就会乱码。
最常用的unzip可以通过打一个patch解决,但太麻烦了。7zip也没办法解决,直到我找到了一个名叫unar的解压工具,是unar不是unrar哦!这个解压工具可以自动判断编码,就算自动判断错误也可以手动去指定你需要的编码来解压。
CentOS7安装:
yum -y install epel-release yum -y install unar
Debian9安装:
apt -y install unar
使用下面的命令可以先浏览一下压缩包的内容,看是不是乱码:
lsar 'example.zip'
如果还是乱码,就自己手动指定编码再看一次,直到你选择的编码能够正确显示:
lsar -e GBK 'example.zip'
一般情况下Windows下压缩的ZIP都是GBK,我不知道为什么unar会自动判断失败,然后手动指定为GBK就行了。
要解压压缩包:
unar -e GBK 'example.zip'
带密码的压缩包:
unar -e GBK -p password 'example.zip'
使用unar批量解压一个目录内所有zip压缩包,这里我只能简单撸个脚本实现:
nano meizi.sh
脚本如下:
#!/bin/bash for meizi in *.zip do unar -e GBK "$meizi" done
丢到要解压的目录内给执行权限:
chmod +x meizi.sh
运行即可:
./meizi.sh
批量解压如果压缩包内没有中文的话用7zip会方便一些,安装方法CentOS7:
yum -y install epel-release yum -y install p7zip
Debian:
apt -y install p7zip-full
直接在要解压的目录内执行下面的命令即可:
7za x "*.zip"
如果是带密码的压缩包(注意-p后面不要带空格直接跟密码输入):
7za x "*.zip" -ppassword
批量解压完成之后,可以使用下面的命令检查一下解压出来的目录是否和本地数目一致,确保文件完整。
统计当前文件夹下文件的个数,包括子文件夹里的:
ls -lR | grep "^-" | wc -l
统计当前文件夹下文件的个数:
ls -l | grep "^-" | wc -l
统计文件夹下目录的个数,包括子文件夹里的:
ls -lR | grep "^d" | wc -l
统计当前文件夹下目录的个数:
ls -l | grep "^d" | wc -l
爽,明天做个种子分享出来:
LALA
我什么都不卖了,告辞!
最新评论
5211314
能不能教我 一点不会