Chmod

‘chmod –reference=<reference file> <file>’ 在 macOS 上返回 ‘chmod: 非法選項 – -’

  • April 10, 2021

我正在學習如何更改文件的權限。在我的 macOS 系統上,我想使用該chmod --reference=reference-file file命令將權限從一個文件複製到另一個文件,但是它不斷返回

chmod: illegal option -- -

任何幫助將不勝感激。

macOS 上的chmod不是 GNU chmod(通常在 Linux 系統上找到),因此不支持特殊的非標準 GNU“長選項”。

chmod在 macOS 上,您仍然可以通過 Homebrew 包管理器訪問 GNU 。該實用程序在gchmod您安裝coreutils軟體包後可用

brew install coreutils

如果您的版本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並查看當地方言是什麼。

引用自:https://unix.stackexchange.com/questions/613292