欢迎光临
我们一直在努力

Linux下解压ZIP中文乱码解决/批量解压

在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

我什么都不卖了,告辞!

赞(0)
未经允许不得转载:拆东墙 » Linux下解压ZIP中文乱码解决/批量解压

评论 抢沙发

登录

找回密码

注册