惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

Martin Fowler
Martin Fowler
Blog — PlanetScale
Blog — PlanetScale
Vercel News
Vercel News
L
LangChain Blog
Google DeepMind News
Google DeepMind News
H
Hackread – Cybersecurity News, Data Breaches, AI and More
F
Fortinet All Blogs
The GitHub Blog
The GitHub Blog
Recent Announcements
Recent Announcements
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
OSCHINA 社区最新新闻
OSCHINA 社区最新新闻
A
About on SuperTechFans
博客园_首页
N
Netflix TechBlog - Medium
Y
Y Combinator Blog
Hugging Face - Blog
Hugging Face - Blog
Last Week in AI
Last Week in AI
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog
Apple Machine Learning Research
Apple Machine Learning Research
罗磊的独立博客
美团技术团队
V
V2EX

少数派

派早报:Google 发布 Fitbit Air 等 - 少数派 「新人报到」確認需求,再開始 - 少数派 从 SOLO 独立开发者社区,我看到了越来越多开发者开始做自己的产品 - 少数派 我怎么管理那些"不常做,但总会忘"的生活事项 - 少数派 人形机器人量产元年,数据才是具身智能的“生死线” - 少数派 BuhoLaunchpad 高度还原 Mac 启动台:开发历程与思考 - 少数派 五年陪伴依然不舍,DIY 换壳后让罗技 MX Master 3 继续服役 - 少数派 新玩意 240|少数派的编辑们最近买了啥? - 少数派 一日一技|为什么你应该关闭 iOS 的键盘声音 - 少数派 我做了个插件和 Skills,一键提取任何网站的设计规范 Design.md - 少数派 住在三四线城市的你,该开始录播客了 - 少数派 甘南秘境,大白高国 - 少数派 AI的审美:谁让把我变成川内倫子 - 少数派 返工怎能不烦恼,打工人片单总有一部是你的「嘴替」 - 少数派 为了让「上厕所」更健康,我做了一个小工具 - 少数派 AI + Skill,能够让生成的文章去除 AI 味吗? - 少数派 新玩意|韶音OpenDots ONE 耳夹式耳机 - 少数派 《美满》| 在每一个春天的晚上相爱(362) - 少数派 新玩意|优篮子 PS01 MagSnap 磁吸支架 - 少数派 自我整合手记 | 我开始早睡了:用稳定规则,为自由托底 - 少数派 用龙虾(OpenClaw)两个多月,我最深的12个体会 - 少数派 听歌时间到,12 张你可能错过的 2025 华语乐坛好专辑 - 少数派 承诺能追吗 - 少数派 macOS 26启动台没了? 我做了个不一样的App启动器 - Keboard - 少数派 《四海为家的人》| INTJ对话INTJ(361) - 少数派 你发过的那些黑历史,是时候一次清干净了 - 少数派 新玩意:安安静静玩,越玩越专注:计客密码机 - 少数派 iPad 用户首次体验 Android 平板:vivo Pad6 Pro - 少数派 数据逻辑强 - 少数派 极北行+ | 一路向北,探访日本至北之地 | 001 - 少数派
我找到了最理想的解压方案:双击,解压,搞定。
2017-08-21 · via 少数派

我找到了最理想的解压方案:双击,解压,搞定。

macOS 的自带解压软件是一场灾难,它天真地认为全世界都用同一个格式、同一种编码的压缩方案。如果你下载了一个「文件名太长无法解压」的文件,那问题八成出在薛定谔的 Archive Utility 上。

试过了几乎所有能找到的解压软件,我忽然意识到一个问题:我追求的只是解压那一时的爽快,而不太在意附加的功能。于是我制作了基于 p7zip 的 Automator 小工具,满足了轻量、快速、稳定及安全的需求。

但 Automator 服务自身的一个缺陷令人无法容忍:对于输入对象的识别很笼统,我右键任何文件和文件夹都会跳出「解压」选项。

有谁会想解压一张图片呢?

说到底,还是右键菜单这个实现方式不够优雅,为什么要在菜单里摩挲一番再点击「解压」呢?Unachiever 给了我一个灵感:双击文件,直接解压。

And I achieved it.

本文将介绍用 Automator、p7zip 和 unrar 来实现以下效果:

  • 双击压缩包,直接解压
  • 支持绝大多数压缩格式
双击,解压

工作思路

把「右键-解压」减少到「双击解压」一步,是个需要「换脑子」的活儿。我不能再用寄人篱下的「服务(services)」,而是转向封装好的「应用程序」:

大致的思路就是做一个 Automator 应用,它可以调用命令行解压程序 p7zip 和 unrar(分别能解压 zip 和 rar);双击压缩包后,会转到对应的 Automator 应用里进行解压。这一系列动作里,只有命令行程序真正做了解压的工作,其他的则负责告诉解压模块目标在哪。

安装 p7zip 和 unrar

实际在付出努力的还是 p7zip 和 unrar,自然要先用终端安装它们。

首先安装 homebrew,方便以后管理命令行程序:

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

然后用 homebrew 安装解压程序:

brew install p7zip

brew install unrar

哥俩带有丰富的解压命令,搭配各种参数可以实现魔幻的效果。不过目前我们关注的只有一件事:解压。

两个程序各使用以下命令来解压文件:

7z x [文件名] -o[解压后存放路径]

unrar x [文件名] -o[解压后存放路径]

暂且搁置一边,稍后烹制。

打开 Automator,新建一个「应用程序」:

调用 p7zip 和 unrar 的两个应用程序大同小异,这里以 p7zip 为例。

我希望 Automator 应用能解压文件,就得告诉它两件事:文件在哪,怎么解压。来添加两个步骤:第一步「拷贝至剪贴板」将获得目标文件名,第二步「运行 shell 脚本」则会调用 p7zip 去解压文件:

最关键的就是 shell 里的命令,全靠它调用 p7zip/unrar。为了防止 shell 罢工,声明一下环境变量(和下一条命令之间用「;」隔开):

PATH=$PATH:/usr/local/bin/

再将「传递输入」设为「作为自变量」,并在用「$@ 」代替文件名,以接收来自上一步的文件。后面那一串「-o/Users/Min/Desktop」代表输出的路径,我习惯把文件解压到桌面:

7z x $@ -o/Users/Min/Desktop

至此 Automator 程序制作完毕。将它们保存在不碍眼的地方,得到两只扛炮的小机器人,接下来会为你所用:

添加格式支持

我的目标是:双击即解压。

为此,务必将压缩包的打开方式指定为方才做好的 Automator 应用,并选择「全部更改」。我暂时只指定了两个常见格式,「unzip」应用对应 zip,「unrar」对应 rar。

养兵千日,用兵此时,至此我们得到了文章开头的效果:

Enjoy。

结语

Mac 的自带解压工具只能用于部分 zip,但它的交互方式是最简单的。命令行软件的交互更加是噩梦,尽管它们有着强大的解压能力。为了让解压这件事更加简单,只好我自己动手,丰衣足食。也许双击解压才是最符合直觉的方案,并且我实现了。

算上上个季度的博文,我前前后后写了三篇文章来记录这一段折腾经历。这是一个很有意思的过程,让我回忆起熬夜做 workflow(iOS)的日子,可惜随着后者被苹果收购,Automator 的项目经理离职,自己做小工具越来越难。以往我们爱调侃使用这些自动化工具是「带着镣铐跳舞」,如今简直就有末日旅游的味道了——真不知道哪天它们就被巨头们彻底抛弃了。

总之,现在,我可以说一句:我发现了 macOS 上最简单的解压方式。


参考文章:

Automator & P7zip:打造 macOS 上的简易解压工具

奇技淫巧|Automator 环境变量