Скажем, у меня есть файл, расположенный по адресу /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java .

Я хочу перечислить все его родительские каталоги, чтобы просмотреть их разрешения, чтобы получить что-то вроде ниже, чтобы я мог отследить проблемы с разрешениями.

drwxr-xr-x  7 root     root  4096 Dec 16 17:50 java
dr-xr-xr-x  2 root     root  4096 Dec 16 17:50 bin
dr-xr-xr-x  3 root     root  4096 Dec 16 17:50 jre
drwxr-xr-x 14 root     root  2920 Dec 16 17:50 java-1.6.0-openjdk-1.6.0.0.x86_64
...

Это возможно?

1 ответ1

3

Идея:

FILE=/usr/bin/ppmpat

until [ "$FILE" = "/" ]; do
        ls -lda $FILE
        FILE=`dirname $FILE`
done

Конечно, измените файл с файлом, который вы хотите. Порядок будет действительно противоположен вашему запросу (переходя от файла к началу), но в конце концов вы можете запустить команду через "tac", если это необходимо;)

Мой вывод:

-rwxr-xr-x 1 root root 22672 Oct 17  2011 /usr/bin/ppmpat
drwxr-xr-x 2 root root 114688 Dec 19 07:04 /usr/bin
drwxr-xr-x 13 root root 4096 Feb 11  2013 /usr

Или по трубопроводу в "TAC":

drwxr-xr-x 13 root root 4096 Feb 11  2013 /usr
drwxr-xr-x 2 root root 114688 Dec 19 07:04 /usr/bin
-rwxr-xr-x 1 root root 22672 Oct 17  2011 /usr/bin/ppmpat

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .