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 来安装工具,并设置了 PATH
和 MANPATH
使得你在命令行中使用时,用到的都会是 gnu 工具。
如果你不想侵入性太强,可以只安装 coreutils
,并通过 ghead
命令来使用 GNU head 工具;而 head
命令仍然指向 MacOS 自带的 head 工具。