zip 压缩后文件变大?

打包了一个mac的app程序, 59M

➜  202202241410 git:(feature/migrate) ✗ du -sh rtc_test_mac.app
 59M    rtc_test_mac.app

使用 zip 命令压缩

➜  202202241410 git:(feature/migrate) ✗ zip -r app.zip rtc_test_mac.app

压缩后

➜  202202241410 git:(feature/migrate) ✗ du -sh app.zip
 59M    app.zip

压缩没起作用???

解压:

➜  202202241410 git:(feature/migrate) ✗ ls
app.zip            rtc_test_mac 2.app rtc_test_mac.app
➜  202202241410 git:(feature/migrate) ✗ du -sh rtc_test_mac\ 2.app
118M    rtc_test_mac 2.app

解压,文件大小翻倍了??

好试试系统的压缩,右键,压缩文件

➜  202202241410 git:(feature/migrate) ✗ ls -lh *.zip
-rw-r--r--@ 1 yxb  staff    58M Feb 24 16:44 app.zip
-rw-r--r--  1 yxb  staff    33M Feb 24 16:59 rtc_test_mac.zip

系统的是好的, 哪里出错了?

原因分析

是压缩率参数配置不正确造成的?把压缩率开到最大

➜  202202241410 git:(feature/migrate) ✗ zip -r -9 app1.zip rtc_test_mac.app
➜  202202241410 git:(feature/migrate) ✗ ls -lh app1.zip
-rw-r--r--  1 yxb  staff    58M Feb 24 17:05 app1.zip

不行, 不是压缩率的原因?到底哪里的问题?

看看别人是咋写的

➜  202202241410 git:(feature/migrate) ✗ zip -r -y app2.zip rtc_test_mac.app

多了个-y

那咱们看看-y是干什么的

image.png

分析: 不加-y, 压缩的时候会将软链接替换成真实的文件,加-y会保持软连接的形式。怪不得,压缩不起作用,原来压缩前文件大小就翻倍了。

验证

原来文件中的软连接


image.png

看看解压后的文件


image.png

查找软连接,看到输出为空,都被真实的文件替换了。
好吧,原因找到了。

总结:

zip 压缩文件的时候, 如果存在软连接,需要添加-y参数,否则你会发现你的压缩没起作用,解压后,文件还变大了。

参考:

mac 下如何查看一个文件夹下面的软链接?
How to list all symbolic links in a directory

find . -type l -ls

你可能感兴趣的:(zip 压缩后文件变大?)