在Free BSD上使用tcsh shell,有没有办法递归列出所有文件和目录,包括文件的所有者,组和相对路径?
ls -alR接近,但它没有显示每个文件前面的相对路径,它显示了分组顶部的路径,即
owner% ls -alR
total 0
drwxr-xr-x 3 owner group 102 Feb 1 10:50 .
drwx------+ 27 owner group 918 Feb 1 10:49 ..
drwxr-xr-x 5 owner group 170 Feb 1 10:50 subfolder
./subfolder:
total 16
drwxr-xr-x 5 owner group 170 Feb 1 10:50 .
drwxr-xr-x 3 owner group 102 Feb 1 10:50 ..
-rw-r--r-- 1 owner group 0 Feb 1 10:50 file1
-rw-r--r-- 1 owner group 0 Feb 1 10:50 file2
Run Code Online (Sandbox Code Playgroud)
我想要的输出如下:
owner group ./relative/path/to/file
Run Code Online (Sandbox Code Playgroud)
Jam*_*ady 25
这个怎么样:
find . -exec ls -dl \{\} \; | awk '{print $3, $4, $9}'
Run Code Online (Sandbox Code Playgroud)
Dav*_*ide 20
使用树.默认情况下,很少有Linux发行版安装它(在这些只有GUI的黑暗时代 :-),但它总是在标准存储库中可用.它也应该可用于*BSD,请参阅http://mama.indstate.edu/users/ice/tree/
使用:
tree -p -u -g -f -i
Run Code Online (Sandbox Code Playgroud)
要么
tree -p -u -g -f
Run Code Online (Sandbox Code Playgroud)
或者查看手册页以获取许多其他有用的参数.
Tor*_*rek 10
find
接近:
find . -printf "%u %g %p\n"
Run Code Online (Sandbox Code Playgroud)
还有"%P",如果您希望路径相对于指定目录,则会从文件名中删除前缀.
注意,这是GNU查找,我不知道BSD查找是否也支持-printf.
你已经得到了一个有效的答案,但作为参考你应该能够在BSD上做到这一点(我已经在mac上测试过了):
find . -ls
Run Code Online (Sandbox Code Playgroud)