为 Mac Finder 增加右键文件打包压缩(免费)

在 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)
有兴趣的话,你可以自己试着在 Automator 里制作这个服务。

解压工具
至于解压工具,我推荐 The Unarchiver。这是个免费的,非常简单的工具,用法和 Mac 自带的解压工具一样。
https://hyjk2000.github.io/2013/10/24/add-instant-file-archiving-for-mac-finder-for-free/
为 Mac Finder 增加右键文件打包压缩(免费)的更多相关文章
- .Net Core 文件打包压缩
最近项目需要实现多文件打包的功能,尝试了一些方法,最后发现使用 ICSharpCode.SharpZipLib 最符合项目的要求. 具体实现如下: 1.在 Nuget 中安装 ICSharpCod ...
- Linux文件打包压缩、解压缩、备份命令使用方法(转载)
对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar.可 ...
- webpack提取图片文件打包压缩
抽离图片文件打包到指定路径下 压缩抽离的图片资源 配置生成html中的图片路径 一.准备测试环境 //工作区间 src//文件夹 index.js//入口文件 index.css//样式文件 inde ...
- Linux_文件打包,压缩,解压
一.压缩命令 文件格式:*.gz 命令:gzip 文件名 (ps:不能压缩目录,切压缩后不保留原文件) 压缩前 -rw-r--r--. 1 root root 315 Sep 6 21:03 df.t ...
- 文件打包压缩——tar
tar——压缩数据/解压数据内容 命令语法: tar zcvf 生成压缩包路径/压缩包.tar.gz 压缩数据01,02,03.... 巧记: 压缩名称为tar.gz,可以理解为tar命令,g ...
- Linux 常见文件打包压缩命令
.tar 解包: tar xvf FileName.tar 打包:tar cvf FileName.tar DirName (注:tar是打包,不是压缩!) 参数说明: - ...
- Windows下将文件打包压缩成 .tar.gz格式
1.下载 “7-ZIP”,安装完成后进入需要打包的文件夹 2. 右击选择“添加到压缩包” 3.压缩格式:tar 4. 得到.tar文件,将其打包 5. 压缩格式为:gzip 6. 得到tar.gz格式 ...
- linux 文件打包压缩成.tar.gz
tar czvf beian.drcluod.cn.20180509.tar.gz ./beian.drcloud.cn/*
- linux 如何对文件解压或打包压缩
tar命令用与对文件打包压缩或解压,格式: tar [选项] [文件] 打包并压缩文件: tar -czvf 压缩包名 .tar.gz 解压并展开压缩包: tar -xzvf 压缩包名 .tar. ...
随机推荐
- 自定义npm包的创建、发布、更新和撤销
大纲 1.准备2.自定义npm包3.发布自定义npm包4.引用npm包5.更新npm包6.撤销发布的npm包 简书原文 https://www.jianshu.com/p/d737bc5df5b7 1 ...
- 【Codeforces Round #439 (Div. 2) B】The Eternal Immortality
[链接] 链接 [题意] 求b!/a!的最后一位数字 [题解] b-a>=20的话 a+1..b之间肯定有因子2和因子5 答案一定是0 否则暴力就好 [错的次数] 在这里输入错的次数 [反思] ...
- 观CSDN站点小Bug有感
今天早上在浏览博客的时候偶然发现CSDN博客的数据出现了异常,我也是头一次看到这么明显的Bug.详细什么表现呢?先来看个截图.例如以下: 常常看CSDN博客的人 ...
- 【23.39%】【codeforces 558C】Amr and Chemistry
time limit per test1 second memory limit per test256 megabytes inputstandard input outputstandard ou ...
- Write Code As If You Had to Support It for the Rest of Your Life
Write Code As If You Had to Support It for the Rest of Your Life Yuriy Zubarev YOU COULD ASK 97 PEOP ...
- jquery插件课程2 放大镜、多文件上传和在线编辑器插件如何使用
jquery插件课程2 放大镜.多文件上传和在线编辑器插件如何使用 一.总结 一句话总结:插件使用真的还是比较简单的,引包,初始化,配置参数(json),配置数据(json),而后两步不是必须的.而且 ...
- php获取调用本方法的上个方法,php堆栈,函数入库
$array =debug_backtrace(); //print_r($array);//信息很齐全 unset($array[0]); foreach($array as $row) { $ht ...
- notepad++ 正则替换
比如原来的代码是 {$id['nihao']}{$id['lal']}{pigcms:$id.leere} 查找目标写 \{\$id\['(\w+)'\]\} 替换为写 \{pigcms:\$id\. ...
- request与response对象详述
request与response对象. 1. request代表请求对象 response代表的响应对象. 学习它们我们可以操作http请求与响应. 2.request,response体系结构. 在 ...
- [Angular] Dynamic component's instance and sorting
After create a component dynamic, we are able to change the component's props and listen to its even ...