问题:ls -l用于所有父目录

我想获取从当前文件夹到/的所有目录权限的列表。例如,对于目录:/var/lib/program/subfolder,我想要一个输出,例如:

$ pwd
/var/lib/program/subfolder
$ magic_ls_-l_command somefile
drwxr-xr-x 10 root root 4096 May 15 20:20 var
drwxr-xr-x 10 root root 4096 May 15 20:20 lib
drwxrwxr-x 10 root user 4096 May 16 20:21 program
drwxrwxr-x 10 root user 4096 May 16 20:21 subfolder
-rwxrwxr--  1 root user 4096 May 16 20:22 somefile

我不关心顺序(从/var/subfolder或其他方式)、硬链接的数量甚至日期。我只是将它们写下来以模拟ls -l输出。另外,我不在乎每个文件名如何打印(/var/libvarlib,或/var/var/lib)。我只对从所选文件或pwd/的路径中的每个文件/目录的所有权感兴趣。

如果我应该安装一些程序,我在 Ubuntu 20.04 下。

解答

这个问题已经在superuser.com中得到解答(我不知道是否可以将来自一个站点的问题标记为来自另一个站点的重复)。解决方法就像写一样简单(假设我与目标文件名在同一目录中):

$ namei -l $(pwd)/somefile ## 或 `namei -l $(realpath -s somefile)`

由于-l,它以长格式列出了每个父目录的基本权限。

我必须使用pwd/realpath因为namei不能解析相对路径。如果我不在目标目录中,只需写完整路径。

Logo

更多推荐