MacOS: Software: GNU Utilities

 23rd June 2022 at 11:35am

MacOS 虽然是个类 UNIX 系统,但是它的命令行工具和常用的 GNU Linux 很不一样。比如想使用 head 命令来去除文件末尾的一个字节时:

# Linux 可以正常执行
head -c-1 my.file > my.file.stripped

# MacOS 不支持负数作为 -c 参数
head -c-1 my.file > my.file.stripped
# 输出
head: illegal byte count -- -1

这篇 Gist 指导了如何在 MacOS 上安装 gnu 工具。它使用 brew 来安装工具,并设置了 PATHMANPATH 使得你在命令行中使用时,用到的都会是 gnu 工具。

如果你不想侵入性太强,可以只安装 coreutils,并通过 ghead 命令来使用 GNU head 工具;而 head 命令仍然指向 MacOS 自带的 head 工具。