我正在学习如何更改文件的权限。在我的 macOS 系统上,我想使用该chmod --reference=reference-file file
命令将权限从一个文件复制到另一个文件,但它不断返回
chmod: illegal option -- -
任何帮助将不胜感激。
答案1
macOS 上的chmod
不是 GNU chmod
(通常在 Linux 系统上找到),因此不支持特殊的非标准 GNU“长选项”。
chmod
在 macOS 上,您仍然可以通过 Homebrew 包管理器访问 GNU 。gchmod
一旦您安装了coreutils
软件包,该实用程序就可用
brew install coreutils
答案2
如果您的版本chmod
不支持--reference
并且您不想安装其他软件,您可以使用stat
来获取参考文件的权限并使用它。不幸的是,stat
不同操作系统/版本之间本身是不一致的。在 macOS(以及 NetBSD 和可能其他 BSD)上,您可以使用:
chmod "$(stat -f "%Mp%Lp" referencefile)" file
如果您有 GNU 版本stat
(并且由于某种原因没有 GNU 版本chmod
),那么它会是:
chmod "$(stat -c "%a" referencefile)" file
在其他操作系统上...检查man 1 stat
并查看当地方言是什么。