列出单个文件的所有父目录的权限

xia*_*kai 1 linux permissions file-permissions

假设我有一个文件位于/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
...
Run Code Online (Sandbox Code Playgroud)

这可能吗?

小智 5

一个主意:

FILE=/usr/bin/ppmpat

until [ "$FILE" = "/" ]; do
        ls -lda $FILE
        FILE=`dirname $FILE`
done
Run Code Online (Sandbox Code Playgroud)

当然,将 FILE 更改为您想要的文件。该顺序确实与您的请求相反(从文件到顶部),但最终您可以根据需要通过“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
Run Code Online (Sandbox Code Playgroud)

或者用管道输入“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
Run Code Online (Sandbox Code Playgroud)