“chmod--参考= " 在 macOS 上返回 "chmod: 非法选项 -- -"

“chmod--参考= " 在 macOS 上返回 "chmod: 非法选项 -- -"

我正在学习如何更改文件的权限。在我的 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并查看当地方言是什么。

相关内容