Как получить права доступа к файлу Octal из командной строки в Mac OS
Оглавление:
Пользователи командной строки, вероятно, знакомы с использованием chmod для установки прав доступа к файлам в числовом или восьмеричном формате, например, с помощью такой команды, как «chmod 755 имя файла», но задумывались ли вы когда-нибудь, как вы можете получить права доступа к файлу в восьмеричном формате?
Если вы хотите увидеть или просмотреть восьмеричное числовое значение разрешений для любого файла или папки через командную строку, вы можете обратиться к команде stat в Mac OS, чтобы сделать это.
Мы предполагаем, что у вас есть достаточный опыт и комфорт при работе с командной строкой, если нет, то эта статья, скорее всего, не имеет к вам отношения. Большинство пользователей Mac будут когда-либо просматривать или изменять права доступа к файлам только через Mac Finder, как описано в другом месте (если даже это), тогда как эта конкретная статья предназначена для более продвинутых пользователей.
Как получить числовые значения разрешений chmod на Mac
Чтобы начать, запустите приложение «Терминал» из /Applications/ на Mac и используйте следующие команды:
stat -f %A файл.txt
Например, эта команда может вывести примерно следующее:
$ stat -f %A wget-1.18.tar.gz 644
Где в этом примере «644» — восьмеричное значение прав доступа к этим файлам.
В качестве альтернативы вы можете использовать -f и %OLp (да, это заглавная буква «о», а не ноль), вывод будет таким же, если файл тоже:
stat -f %OLp /Applications/System\ Preferences.app
Пример вывода для этой команды может выглядеть следующим образом, показывая числовое восьмеричное значение разрешений для целевого элемента:
"$ stat -f %OLp>"
В этом примере приложение «Системные настройки» имеет восьмеричное значение разрешений 775.
Вам не нужно использовать кавычки, хотя, если вам нужно по какой-то причине экранировать имя файла или путь, или для целей сценария, их легко разместить следующим образом:
"stat -f %OLp>"
Флаг -f предназначен для формата, вы можете узнать о конкретных параметрах форматирования для вывода статистики на странице руководства по статистике с помощью «man stat».
В последнем случае команды «O» (верхний регистр o) специально предназначен для достижения восьмеричного вывода.
Знание точных числовых прав доступа к файлу или папке чрезвычайно полезно по многим причинам, и может быть полезно знать это, если вы настраиваете разрешения для различных элементов или даже если вы перемещаете файлы на Mac и хотите сохранить точные разрешения и проверить их постфактум. Есть бесчисленное множество других применений, особенно если вы запускаете какой-либо сервер с Mac.
Эти команды должны работать одинаково для получения восьмеричных разрешений практически в любой версии macOS, MacOS или Mac OS X, независимо от того, как пишется заглавная буква в соглашении об именах. Примечательно, однако, что подход к получению восьмеричных разрешений на Mac отличается от остального мира Linux, поэтому, если вы переходите на Mac из мира Linux, вам нужно настроить флаги команды stat, чтобы точно получить разрешения в восьмеричном формате, мы быстро рассмотрим это далее.
Получение прав доступа к файлу Octal из командной строки в Linux
Для полноты картины мы также кратко обсудим получение восьмеричных значений разрешений в мире Linux, где вы можете использовать следующее для получения восьмеричных разрешений файлов:
"stat -c %a %n /Путь/к/файлу"
Вы также можете более просто использовать команду stat -c:
stat -c %a /Path/To/File.txt
Вывод числового значения будет одинаковым независимо от того, конечно, если введенный целевой файл один и тот же.
Опять же, эти два последних подхода специфичны для Linux, и вам нужно будет использовать описанные выше методы, чтобы получить восьмеричные значения прав доступа к файлу в Mac OS.
Знаете ли вы какие-либо другие методы или подходы к получению числового значения прав доступа к файлам на Mac? Поделитесь ими в комментариях ниже!