为 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

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

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

解压工具

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

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

时间: 2024-10-09 04:00:04

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

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

对于刚刚接触Linux的人来说,一定会给Linux下一大堆各式各样的文件名给搞晕.别个不说,单单就压缩文件为例,我们知道在Windows下最常见的压缩文件就只有两种,一是,zip,另一个是.rar.可是Linux就不同了,它有.gz..tar.gz.tgz.bz2..Z..tar等众多的压缩文件名,此外windows下的.zip和.rar也可以在Linux下使用,不过在Linux使用.zip和.rar的人就太少了.本文就来对这些常见的压缩文件进行一番小结,希望你下次遇到这些文件时不至于被搞晕ic

脚本基础,文件查找,文件打包压缩。

本周知识点: ''' 1.文本处理工具和正则表达式 抽取文本的工具: 文件内容:cat,用于查看文件内容的基本命令,-E显示行结束符$ -n 显示行号 -A显示所有控制符-b 非空行编号 -s 压缩连续的空行成一行.hexdump :可以查看文件的ASCII值more :分页查看文件 -d 显示翻页及退出提示less : 一页一页地查看文件. /文本 搜索文本 n/N 跳到下一个或上一个匹配 显示文本前或后行内容 head : -c# 指定获取前#字节 -n# 指定获取前#行 (n可以省略)ta

文件打包压缩

一.文件的压缩 压缩文件体积小,在网速相同的情况下,传输时间短.下面将学习如何在Linux系统中对文件进行打包压缩与解压,以及让用户基于关键词在文本文件中搜索相匹配的信息.在整个文件系统中基于指定的名称或属性搜索特定文件 常见的压缩文件后缀名及其含义: 文件后缀 含义 .gz gzip压缩工具压缩的文件 .bz2 bzip压缩工具压缩的文件 .tar tar打包的文件 .tar.gz 先由tar打包,再由gzip压缩 .tar.bz2 先由tar打包,再由bzip2压缩 .tar.xz 先由ta

文件打包压缩——tar

tar——压缩数据/解压数据内容 命令语法: tar zcvf  生成压缩包路径/压缩包.tar.gz    压缩数据01,02,03.... 巧记: 压缩名称为tar.gz,可以理解为tar命令,gz取压缩类型gizp的前2个辅音字母 参数说明:        z --- 数据压缩方式 gzip (--gzip, --gunzip, --ungzip   filter the archive through gzip)       c --- 创建一个压缩文件(create          

java 多文件打包压缩

public static void main(String[] args) { File[] srcFiles = { new File("E:\\testZip\\testZip.zip"), new File("E:\\testZip\\test2.json"), new File("E:\\testZip\\test3.txt") }; File zipFile = new File("E:\\ZipFile.zip"

打包压缩文件命令

命令 参数 说明 -------------------------------------------------------------------------------- tar 用于对文件打包压缩或解压 打包并压缩文件 tar -czvf 压缩包名.tar.gz -c 打包文件 解压并展开压缩包 tar -xzvf 压缩包.tar.gz -x 解开压缩文件 -t 查看压缩文件内有哪些文件 -z 用Gzip压缩或解压 -j 用bzip2压缩或解压 -v 显示压缩或解压的过程 -f 目标文

tar打包压缩命令总结

##tar命令参数 tar  zcvf   xxx.tar.gz /etc         ##前:打包压缩后的文件名,后:被打包压缩的文件或目录 tar zxvf xxx.tgz -C /etc/         ##将xxx.tgz文件解压到指定路径下 -z 调用gzip工具压缩,生成或解压.gz扩展的压缩文件 -c --create,创建tar包 -v 显示输出过程信息 -f --file对普通文件打包压缩 --exclude=x 排除不需要处理的文件或目录,不进行打包压缩 --exclu

Asp.Net Web Api 2 实现多文件打包并下载文件示例源码_转

一篇关于Asp.Net Web Api下载文件的文章,之前我也写过类似的文章,请见:<ASP.NET(C#) Web Api通过文件流下载文件到本地实例>本文以这篇文章的基础,提供了ByteArrayContent的下载以及在下载多个文件时实现在服务器对多文件进行压缩打包后下载的功能.关于本文中实现的在服务器端用.NET压缩打包文件功能的过程中,使用到了一个第方类库:DotNetZip,具体的使用将在正文中涉及.好了,描述了这么多前言,下面我们进入本文示例的正文. 一.创建项目 1.1 首先创

linux(6/17)--文件打包上传和下载

tar命令 命令功能 用来压缩和解压文件 命令格式 tar[必要参数][选择参数][文件] tar打包工具 -f ##指定生成包的名字,建议 -f单独写成一个参数 --delete filename ##删除包中指定文件 --get filename ##取出包中指定文件 注: -c -t -x 不能出现在同一串命令行中 tar -cf etc.tar /etc ##生成归档包 tar -f etc.tar --get file tar -f etc.tar --delete file tar