How to limit depth for recursive file list?
有没有办法限制Linux中递归文件列表的深度?
我现在使用的命令是:
1 | ls -laR > dirlist.txt |
但是我有大约200个目录,每个目录有10个目录。所以这将花费太长的时间,占用太多的系统资源。
我真正感兴趣的是第一级子目录的所有权和权限信息:
1 2 3 4 5 6 7 8 9 10 11 12 | drwxr-xr-x 14 root root 1234 Dec 22 13:19 /var/www/vhosts/domain1.co.uk drwxr--r-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain1.co.uk/htdocs drwxr--r-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain1.co.uk/cgi-bin drwxr-xr-x 14 root root 1234 Dec 22 13:19 /var/www/vhosts/domain2.co.uk drwxr-xrwx 14 proftp root 1234 Dec 22 13:19 /var/www/vhosts/domain2.co.uk/htdocs drwxr-xrwx 14 proftp root 1234 Dec 22 13:19 /var/www/vhosts/domain2.co.uk/cgi-bin drwxr-xr-x 14 root root 1234 Dec 22 13:19 /var/www/vhosts/domain3.co.uk drwxr-xr-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain3.co.uk/htdocs drwxr-xr-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain3.co.uk/cgi-bin drwxr-xr-x 14 root root 1234 Dec 22 13:19 /var/www/vhosts/domain4.co.uk drwxr-xr-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain4.co.uk/htdocs drwxr-xr-- 14 jon root 1234 Dec 22 13:19 /var/www/vhosts/domain4.co.uk/cgi-bin |
编辑:
命令的最终选择:
1 | find -maxdepth 2 -type d -ls >dirlist |
检查
1 | find . -maxdepth 1 -type d -exec ls -ld"{}" \; |
这里我用1作为最大深度,
利用
实际上不需要执行
find有一个这样的选项:
1 | find . -maxdepth 2 -type d -ls |
要只查看您感兴趣的一级子目录,请将
1 | find . -mindepth 2 -maxdepth 2 -type d -ls |
使用输出格式
当显示的细节不同时,
我后来注意到你想要完整的所有权信息,其中包括这个小组。在符号名格式中使用
1 2 | find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p ' |
这应该给你所需要的细节,只为正确的文件。
我将给出一个示例,显示用户和组的实际不同值:
1 2 3 4 5 6 7 | $ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p ' drwx------ www-data www-data /tmp/user/33 drwx------ octopussy root /tmp/user/126 drwx------ root root /tmp/user/0 drwx------ siegel root /tmp/user/1000 drwxrwxrwt root root /tmp/systemd-[...].service-HRUQmm/tmp |
(edited for readability:indented,shorted last line)
业绩说明虽然执行时间与此类命令基本无关,但性能会提高这里足够大,值得指出:
我们不仅为每个名字保存了一个新的过程——一个巨大的任务-这些信息甚至不需要读取,因为
以漂亮的格式打印目录树,直到深度2(-l 2)。打印用户(-u)和组(-g)以及权限(-p)。只打印目录(-d)。树还有很多其他有用的选项。