Как получить вывод ls в восьмеричном формате

ls -l | sed -e 's/--x/1/g' -e 's/-w-/2/g' -e 's/-wx/3/g' -e 's/r--/4/g' -e 's/r-x/5/g' -e 's/rw-/6/g' -e 's/rwx/7/g' -e 's/---/0/g'


Эта команда использует команду «ls -l» для получения списка содержимого текущей директории с детальными данными о файлах и папках. Результат выводится на стандартный вывод. Затем, команда «sed» используется для замены определенных значений прав доступа в выводе команды «ls -l».
Конкретно, эта команда заменяет следующие значения прав доступа:
— «—x» заменяется на «1»
— «-w-» заменяется на «2»
— «-wx» заменяется на «3»
— «r—» заменяется на «4»
— «r-x» заменяется на «5»
— «rw-» заменяется на «6»
— «rwx» заменяется на «7»
— «—» заменяется на «0»

Получается, что команда преобразует символьные права доступа в восьмеричные значения. Например, права доступа «rwxr-x—» преобразуются в «753».
Это может быть полезно, когда восьмеричное представление прав доступа более удобно для чтения или обработки в других скриптах. Альтернативой может быть использование других инструментов для обработки вывода «ls -l» и преобразования прав доступа, таких как Perl, Python или AWK, которые предоставляют более мощные возможности обработки текста и регулярных выражений. Переданные команде аргументы -e используются для задания регулярных выражений, которые определяют, каким образом выполняется замена значений.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *