dir=$(pwd); while [ ! -z "$dir" ]; do ls -ld "$dir"; dir=${dir%/*}; done; ls -ld /
Эта команда выводит права доступа для текущего каталога и всех родительских каталогов до корневого каталога (/).
Сначала команда с помощью pwd
получает текущий каталог, который сохраняется в переменную dir
. Далее запускается цикл, который использует ls -ld
для вывода информации о правах доступа и других атрибутах файла, находящегося в dir
. Затем dir
обновляется, чтобы указывать на предыдущий родительский каталог (путем удаления последнего куска пути с помощью ${dir%/*}
). Цикл продолжается, пока dir
не станет пустым.
В конце команды выводятся права доступа и другие атрибуты корневого каталога (/).
Альтернативой для этой команды может быть использование команды find
. Например, find . -printf "%m %p\n"
, которая выведет все файлы и директории в текущей директории и их права доступа.