我想获取服务器中我有读取权限的所有文件的目录树。我该怎么做?
答案1
我想到两种方法,find
和tree
。我认为这两种方法tree
更适合你的问题。
寻找
find
优点是它是一个基本包,可能在任何 Linux 发行版中找到。缺点是它不会生成树视图。grep
查找错误也不容易。而是添加适当的-perm
测试。以下示例将查找具有/
用户、组和其他读取权限的所有目录,并将标准错误发送到/dev/null
find / -type d -perm /u=r -perm /g=r -perm /o=r 2>/dev/null
树
虽然tree
默认情况下可能未安装,但它位于存储库中。它确实会创建一个树视图。如果运行的用户tree
没有读取权限,则简单grep -v error
将从输出中删除目录。但是,删除错误可能会留下多余的格式。 -d
仅列出目录。-p
打印每个文件的文件类型和权限(根据 ls -l)。grep -v
打印与模式不匹配的行,error
。
tree -d -p / | grep -v error