首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何限制递归文件列表的深度?

如何限制递归文件列表的深度?
EN

Stack Overflow用户
提问于 2018-03-05 07:53:45
回答 3查看 0关注 0票数 0

是否有办法限制Linux中递归文件列表的深度?

我现在使用的命令是:

代码语言:javascript
运行
复制
ls -laR > dirlist.txt

但是我有大约200个目录,每个目录都有10个目录。所以,这只需要花费太多的时间,占用太多的系统资源。

我真正感兴趣的是第一级子目录的所有权和权限信息:

代码语言:javascript
运行
复制
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
EN

回答 3

Stack Overflow用户

发布于 2018-03-05 15:20:23

检出find的-maxdepth标志

代码语言:javascript
运行
复制
find . -maxdepth 1 -type d -exec ls -ld "{}" \;

在这里,我使用1作为最大级别深度,-type d表示仅查找目录,然后ls -ld以长格式列出内容。

票数 0
EN

Stack Overflow用户

发布于 2018-03-05 16:26:54

利用find

实际上不需要/ bin / ls的执行。

Find有一个选项可以做到这一点:

代码语言:javascript
运行
复制
find . -maxdepth 2 -type d -ls

要仅查看感兴趣的一级子目录,请将-mindepth添加到与-maxdepth相同的级别:

代码语言:javascript
运行
复制
find . -mindepth 2 -maxdepth 2 -type d -ls

使用输出格式

当显示的细节应该不同时,-printf可以以自定义格式显示关于文件的任何细节; 要显示文件的符号权限和所有者名称,请在格式中使用带%M%u-printf

我后来注意到需要完整的所有权信息,其中包括该组织。 在符号名称格式中使用%g,或在组ID中使用%G(类似数字用户ID的%U

代码语言:javascript
运行
复制
find . -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'

这应该给你提供你需要的细节,只是为了正确的文件。

我将给出一个实际显示用户和组的不同值的示例:

代码语言:javascript
运行
复制
$ sudo find /tmp -mindepth 2 -maxdepth 2 -type d -printf '%M %u %g %p\n'
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

票数 0
EN

Stack Overflow用户

发布于 2018-03-05 17:52:29

tree -L 2 -u -g -p -d

以深度为2(-L 2)的漂亮格式打印目录树。 打印用户(-u)和组(-g)和权限(-p)。 仅打印目录(-d)。 树有很多其他有用的选项。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100007517

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档