**无法使用find,因为出现权限被拒绝错误
我试图在/students中找到所有世界可读的目录。这是我目前所拥有的:
grep 'r-x' | cut -c8-10 | ls -l /students | sort | uniq -c
我不明白为什么这样做不起作用。我告诉shell搜索ls -l的第8 - 10个字符中出现的“r-x”,这是其他用户的权限然后我对输出进行排序,并使用uniq -c显示匹配结果的计数。这是我对shell脚本应该做什么的理解,我不明白为什么不这样做。如有任何帮助,我们将不胜感激!
由于某种原因,它提取的不仅仅是其他人可读的目录。
下面是一些示例输出(我省略了大部分输出)
4条答案
按热度按时间68bkxrlz1#
不要解析
ls
,而是使用find
:这将列出
/students
中全局可读的所有文件和目录。如果您不想递归到子目录,而只想查找目录,可以说:
mpgws1up2#
我告诉shell在ls -l的第8 - 10个字符中搜索“r-x”,这是其他用户的权限(因此是全局可读的)。
不,你不是。你要在行中的任何地方寻找“r-x”,然后取找到的行的第8到第10个字符。
"Why you shouldn't parse the output of ls(1)"
nnt7mjpx3#
-d
-d
用于仅列出目录。*/
告诉 *nix仅搜索当前目录。46qrfjad4#