xyz*_*xyz 8 shell bash permissions files
我有一个文件路径.. 是否有任何单个命令可以查看路径中所有中间目录的文件/目录权限..?
Gil*_*il' 10
Linux 附带的namei
命令主要用于显示路径中的符号链接,但也可以显示所有权。
$ namei -nom ~
f: /home/gilles
drwxr-xr-x root root /
drwxr-sr-x root staff home
drwxr-xr-x gilles gilles gilles
Run Code Online (Sandbox Code Playgroud)
否则,这里有一种方法可以遍历包含给定文件的连续目录(不是唯一的,正如本页上的其他答案所示)并列出它们的内容。
d=$PWD; set /;
while [ -n "$d" ]; do set -- "$@" "$d/"; d=${d%/*}; done;
ls -ld "$@"
Run Code Online (Sandbox Code Playgroud)
请注意,此列表在存在符号链接时可能会有些误导。例如,如果/foo/bar
是一个符号链接,/hello/world
它本身是一个符号链接/one/two
,以及所有/foo
,/hello
并且/world
是世界可读的(比如模式 755)但/hello
用户 Alice 不可读,那么 Alice 将无法到达/foo/bar
,但上面的列表将只显示世界可读的目录。
这是两个oneliners。ls
每个路径组件一次调用:
$ (IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; ls -dal "$path"; done)
Run Code Online (Sandbox Code Playgroud)
输出:
# drwxr-xr-x 31 root admin 1122 4 Nov 22:08 /
# drwxr-xr-x 9 root admin 306 3 Nov 17:36 /Users
# drwxr-xr-x+ 67 janmoesen staff 2278 7 Nov 14:46 /Users/janmoesen
# drwxr-xr-x+ 53 janmoesen staff 1802 4 Nov 22:07 /Users/janmoesen/Sites
# drwxr-xr-x 28 janmoesen staff 952 7 Nov 15:01 /Users/janmoesen/Sites/example.com
Run Code Online (Sandbox Code Playgroud)
只需对ls
所有路径进行一次调用:
$ (IFS=/; set -f -- $PWD; for arg; do path="${path%/}/$arg"; paths+=("$path"); done; ls -dal "${paths[@]}")
Run Code Online (Sandbox Code Playgroud)
输出:
# drwxr-xr-x 31 root admin 1122 4 Nov 22:08 /
# drwxr-xr-x 9 root admin 306 3 Nov 17:36 /Users
# drwxr-xr-x+ 67 janmoesen staff 2278 7 Nov 14:46 /Users/janmoesen
# drwxr-xr-x+ 53 janmoesen staff 1802 4 Nov 22:07 /Users/janmoesen/Sites
# drwxr-xr-x 28 janmoesen staff 952 7 Nov 15:01 /Users/janmoesen/Sites/example.com
Run Code Online (Sandbox Code Playgroud)