在 Windows 上用惯了 7-Zip 和 WinRAR,来到 Mac 却突然发现没有类似的工具?Mac 自带的 Zip 工具确实让人吐糟无力,压缩率低就不说了,因为 Mac 上文件名是 Unicode 编码,到了 GBK 编码的 Windows 上解压了文件名全是乱码有没有?Mac 上的隐藏文件(.DS_Store,.Spotlight-V100之类)每次都得删很麻烦有没有?

总之,用起来很憋屈。尽管有用起来不憋屈的压缩软件可以用(比如 Entropy),但是其 ¥123 的价格有点坑爹,而且它的许多功能其实用不上。

有没有最简单、免费的方法,给我的 Mac 加个右键压缩?当然,那就是 7-Zip 的 Mac 移植版 —— p7zip

等等……p7zip 好像是命令行工具?我每次压缩个文件还得打开终端敲命令么?当然不是,虽然一开始安装的时候你还是得敲几条命令,但往后你用它的时候就不用再敲一个字了。这就是一劳永逸。

另外,Windows 上的 WinRAR 可以完美支持 7-Zip 压缩格式,而且 7-Zip 可以很好地处理文件名编码的问题,压缩率和压缩/解压缩速度也比 WinRAR 高。另外,7-Zip 是开源的压缩格式,而 WinRAR 是商业授权的。所以现在看来,除了 Windows 上的习惯,并没有理由继续使用 WinRAR。

安装 p7zip

因为 p7zip 没有发布 Mac 上的二进制版本,只有源码包。所以,你需要在你的 Mac 上编译安装。别被吓到了,有了 Homebrew,一切都很简单。Homebrew 是 Mac 上的一款包管理器,用它可以很方便地下载很多开源命令行工具的源码包,并编译安装到你的 Mac 上。有了它,再加上一点点面对命令行的勇气,你就可以不花一分钱让你的 Mac 做更多的事情。

打开终端,输入这条命令回车,即可安装 Homebrew:

ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

接着安装 p7zip:

brew install p7zip

好了,现在你可以用 7za 命令了:

7za a -m0=LZMA2 -r -x\!.* archive.7z [StuffToArchive]

对命令参数的解释:

a
添加到压缩包
-m0=LZMA2
压缩算法及选项,这里指定使用速度又快压缩率又高的 LZMA2 算法
-r
包括子目录及内容
-x\!.*
排除 Mac 下的隐藏文件,这里惊叹号代表使用通配符,因为惊叹号本身和命令行有冲突所以加了一个反斜杠转义
archive.7z
要创建的压缩文件的文件名
[SruffToArchive]
要压缩的文件/文件夹,可以输入多个

更多的 p7zip 命令用法,可以输入 7za --help

添加到 Finder 右键菜单

下一步就是把 p7zip 添加到 Finder 的右键菜单。这一步是通过 Mac 自带的 Automator 完成的。用 Automator 可以为 Finder 制作一个服务,这个服务可以获取你在 Finder 中选择的文件,用 p7zip 压缩它们。

下载以下文件解压,然后把 添加到 7-Zip 压缩文件.workflow 放进 ~/Library/Services 目录。现在你可以在 Finder 中选择一些文件,点击鼠标右键看看。(如果相应的选项没有出现,你可能需要重新启动 Finder,在终端中输入 killall Finder

添加到 7-Zip 压缩文件.zip

有兴趣的话,你可以自己试着在 Automator 里制作这个服务。

解压工具

至于解压工具,我推荐 The Unarchiver。这是个免费的,非常简单的工具,用法和 Mac 自带的解压工具一样。

https://hyjk2000.github.io/2013/10/24/add-instant-file-archiving-for-mac-finder-for-free/

为 Mac Finder 增加右键文件打包压缩(免费)的更多相关文章

  1. .Net Core 文件打包压缩

    最近项目需要实现多文件打包的功能,尝试了一些方法,最后发现使用  ICSharpCode.SharpZipLib 最符合项目的要求. 具体实现如下: 1.在 Nuget 中安装  ICSharpCod ...

  2. Linux文件打包压缩、解压缩、备份命令使用方法(转载)

    对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar.可 ...

  3. webpack提取图片文件打包压缩

    抽离图片文件打包到指定路径下 压缩抽离的图片资源 配置生成html中的图片路径 一.准备测试环境 //工作区间 src//文件夹 index.js//入口文件 index.css//样式文件 inde ...

  4. Linux_文件打包,压缩,解压

    一.压缩命令 文件格式:*.gz 命令:gzip 文件名 (ps:不能压缩目录,切压缩后不保留原文件) 压缩前 -rw-r--r--. 1 root root 315 Sep 6 21:03 df.t ...

  5. 文件打包压缩——tar

    tar——压缩数据/解压数据内容 命令语法: tar zcvf  生成压缩包路径/压缩包.tar.gz    压缩数据01,02,03.... 巧记: 压缩名称为tar.gz,可以理解为tar命令,g ...

  6. Linux 常见文件打包压缩命令

    .tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!)       参数说明:         - ...

  7. Windows下将文件打包压缩成 .tar.gz格式

    1.下载 “7-ZIP”,安装完成后进入需要打包的文件夹 2. 右击选择“添加到压缩包” 3.压缩格式:tar 4. 得到.tar文件,将其打包 5. 压缩格式为:gzip 6. 得到tar.gz格式 ...

  8. linux 文件打包压缩成.tar.gz

    tar czvf beian.drcluod.cn.20180509.tar.gz ./beian.drcloud.cn/*

  9. linux 如何对文件解压或打包压缩

    tar命令用与对文件打包压缩或解压,格式: tar [选项] [文件] 打包并压缩文件: tar -czvf  压缩包名 .tar.gz 解压并展开压缩包: tar -xzvf  压缩包名 .tar. ...

随机推荐

  1. nginx启用https访问

    什么是https? https 全称:Hyper Text Transfer Protocol over Secure Socket Layer,是http的安全版.即http下加入SSL协议层,因此 ...

  2. 通过 Microsoft iSCSI Software Target 提供存储服务

    软件下载地址: Microsoft iSCSI Software Target 3.3 下载完后成解压软件包如下: 安装官方的描述Target 端也就是服务端 只支持Windows Server 20 ...

  3. Java与模式:装饰(Decorator)模式

    装饰模式使用被装饰类的一个子类的实例.把client的调用委派到被装饰类,装饰模式的关键在于这样的扩展是全然透明的.   装饰模式在Java种使用也非常广泛,比方我们在又一次定义button.对话框等 ...

  4. [原]MFC中DIALOG(对话框)程序响应加速键(快捷键)

    [原]MFC中DIALOG(对话框)程序响应加速键(快捷键) 2014-8-6阅读266 评论0 新建一个对话框程序,项目名为Test,删除默认确定,取消和静态文本框控件.添加一个按钮,Caption ...

  5. matlab 正则表达式

    regexprep Replace text using regular expression collapse all in page Syntax newStr = regexprep(str,e ...

  6. iOS开发:枚举的介绍与使用

    #import "ViewController.h" //第一种写法 typedef enum { XMGDemoTypeTop, XMGDemoTypeBottom, }XMGD ...

  7. Qt多线程学习-用例子来理解多线程(转),这个是我看过最好的文章,总结很详细(感觉exec()的作用就是保持线程不退出,这样方便随时处理主线程发来的信号,是一种非常别致的思路)good

    01 class MThread :public QThread 02 { 03 public: 04     MThread(); 05     ~MThread(); 06     virtual ...

  8. 《转》couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145

    couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145,有须要的朋友能够參考下. 应为昨天安装的时候没及时 ...

  9. mysql mha高可用架构的安装

    MMM无法全然地保证数据的一致性,所以MMM适用于对数据的一致性要求不是非常高.可是又想最大程度的保证业务可用性的场景对于那些对数据一致性要求非常高的业务,非常不建议採用MMM的这样的高可用性架构.那 ...

  10. jQuery笔记-jQuery筛选器children()详解

    jQuery的选择包含两种,一种是选择器,一种是筛选器.筛选器是对选择器选定的jQuery对象做进一步选择. children()是一个筛选器,顾名思义就是筛选孩子,筛选那些符合条件的孩子. 完整的格 ...