ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
Команда ls -l | awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
может быть использована для отображения прав доступа файлов и директорий в восьмеричном формате.
— ls -l
выводит подробную информацию о файлах и директориях в текущем каталоге.
— awk '{k=0;for(i=0;i<=8;i++)k+=((substr($1,i+2,1)~/[rwx]/)*2^(8-i));if(k)printf("%0o ",k);print}'
является скриптом на языке AWK, который обрабатывает вывод команды ls -l
.
— Скрипт вычисляет и выводит права доступа в восьмеричном формате для каждого файла/директории.
— Альтернативой является использование команды stat
с опцией --format
, которая позволяет указать формат вывода прав доступа.
— В передаваемых скрипту аргументах отсутствуют параметры.