静看光阴荏苒
不管不顾不问不说也不念

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

爽,明天做个种子分享出来:

赞(1)
未经允许不得转载:荒岛 » Linux下解压ZIP中文乱码解决/批量解压
分享到: 更多 (0)

评论 5

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
  1. #1

    坐等种子

    Yuger5年前 (2019-04-04) Google Chrome 73.0.3683.86 Google Chrome 73.0.3683.86 Windows 10 x64 Edition Windows 10 x64 Edition回复
    • 鸽了,今天太忙。

      LALA5年前 (2019-04-04) Google Chrome 72.0.3626.121 Google Chrome 72.0.3626.121 Windows 10 x64 Edition Windows 10 x64 Edition回复
  2. #2

    :neutral: Linux只能看教程一步步开

    瞎折腾5年前 (2019-04-05) Google Chrome 73.0.3683.90 Google Chrome 73.0.3683.90 Android 8.1.0 Android 8.1.0回复
  3. #3

    受教了受教了

    lala5年前 (2019-04-16) Google Chrome 69.0.3497.100 Google Chrome 69.0.3497.100 Windows 10 x64 Edition Windows 10 x64 Edition回复

分享创造快乐

广告合作资源投稿