2

**我无法使用 find 因为我收到权限被拒绝错误

我正在尝试在 /students 中查找世界可读的所有目录。这是我到目前为止所拥有的:

grep 'r-x' | cut -c8-10 | ls -l /students | sort | uniq -c

我不明白为什么这不起作用。我告诉外壳程序在 ls -l 的第 8-10 个字符中搜索“rx”的出现,这是其他用户的权限(因此是世界可读的)。然后我对输出进行排序并使用 uniq -c 显示匹配结果的计数。这是我对我的 shell 脚本应该做什么的理解,我不明白为什么不这样做。任何帮助将不胜感激!

出于某种原因,它所提取的不仅仅是其他人可读的目录。

这是一些示例输出(我省略了大部分输出)

1 drwx------ 11 lluong   b20107   4096 May 26 11:15 lluong
  1 drwx------ 23 stretbar b20097   4096 Dec 18  2012 stretbar
  1 drwx------  2 slawson  b20003   4096 Mar  2  2013 slawson
  1 drwx------  9 fcunha   b20117   4096 May  2 15:21 fcunha
  1 drwxrwxrwx 10 jwu131   b20117   4096 Jul  2 19:26 jwu131
  1 drwxrwxrwx 14 jadler4  b20127   4096 Oct 11  2012 jadler4
  1 drwxrwxrwx  5 rlicudo1 b20067   4096 Apr  3 15:28 rlicudo1
  1 drwxrwxrwx  8 lkrubner b20107   4096 Oct 25  2011 lkrubner
  1 drwxrwxrwx  9 klau53   b20133   4096 Mar 12  2013 klau53
  1 drwxrwx--x 14 vrobins9 b20123   4096 Mar  4  2013 vrobins9
  1 drwxr-xr-x 10 aguo3    b20107   4096 Sep 24 00:13 aguo3
  1 drwxr-xr-x 10 mdanial  b20123   4096 Apr 10 20:46 mdanial
  1 drwxr-xr-x 11       49 users    4096 Mar 28  2013 trac
  1 drwxr-xr-x 11 rroger12 b20133   4096 May  8 10:00 rroger12
  1 drwxr-xr-x 12 spark15  b20113   4096 May 15  2012 spark15
  1 drwxr-xr-x 18 lulrich1 b20133   4096 Sep 29 22:36 lulrich1
  1 drwxr-xr-x 18 yliu192  b20127   4096 Sep 26 12:19 yliu192
  1 drwxr-xr-x 19 dstein   b20117   4096 Feb  9  2013 dstein
  1 drwxr-xr-x 20 jgarc166 b20127   4096 Sep 12 19:22 jgarc166
  1 drwxr-xr-x  2 root     root    16384 Nov 15  2007 lost+found
  1 drwxr-xr-x  4 jsarno   b20113   4096 Dec  7  2011 jsarno
  1 drwxr-xr-x  6 btaylo19 b20123   4096 Mar  5  2012 btaylo19
  1 drwxr-xr-x  6 dtu      b20093   4096 Apr 18 19:18 dtu
  1 drwxr-xr-x  6 ewu2     b20133   4096 May  4 14:30 ewu2
  1 drwxr-xr-x  6 smeehan  b20053   4096 Aug 29 00:19 smeehan
  1 drwxr-xr-x  6 ybondar2 b20027   4096 May 23  2012 ybondar2
  1 drwxr-xr-x  7 apekar   b20103   4096 May 10 00:22 apekar
  1 drwxr-xr-x  7 root     root     4096 Mar 28  2013 tracprojects
  1 drwxr-xr-x  8 jhsiao   b20117   4096 Jul 26 17:33 jhsiao
  1 drwxr-xr-x  8 xfeng18  b20137   4096 Sep 25 14:42 xfeng18
  1 drwxr-xr-x  9 cmendo26 b20133   4096 Aug 19 01:22 cmendo26
  1 drwx-----x  8 amissiro b20093   4096 May 12 16:00 amissiro
  1 drwx--xr-x 17 apinchuk b20127   4096 May 26 23:03 apinchuk
  1 drwx--x--x 10 aboak    b20093   4096 Feb 18  2013 aboak
  1 drwx--x--x 10 achan123 b20133   4096 Sep  6 21:24 achan123
  1 drwx--x--x 10 acurkend b20133   4096 Jul 10 13:15 acurkend
  1 drwx--x--x 10 akleinii b20133   4096 Jun 21 09:07 akleinii
  1 drwx--x--x 10 akobzar  b20133   4096 Sep 26 18:51 akobzar
  1 drwx--x--x 10 amainett b20137   4096 Sep 22 11:17 amainett
  1 drwx--x--x 10 apewther b20127   4096 Feb  6  2013 apewther
  1 drwx--x--x 10 asyrtsov b20127   4096 Aug 16 10:43 asyrtsov
  1 drwx--x--x 10 bernst   b20135   4096 Sep 23 09:12 bernst
  1 drwx--x--x 10 blilley  b20123   4096 Apr 20 18:08 blilley
  1 drwx--x--x 10 bmckeand b20117   4096 Aug 14 14:17 bmckeand
  1 drwx--x--x 10 bsmith18 b20097   4096 Jun 10 11:19 bsmith18
  1 drwx--x--x 10 bwilli18 b20117   4096 Nov  6  2012 bwilli18
  1 drwx--x--x 10 cbeaton  b20123   4096 May 19 04:07 cbeaton
  1 drwx--x--x 10 cbeck4   b20137   4096 Sep 29 16:08 cbeck4
  1 drwx--x--x 10 cho8     b20093   4096 Mar 24  2013 cho8
  1 drwx--x--x 10 cliu58   b20117   4096 Oct  8  2012 cliu58
  1 drwx--x--x 10 cmitch21 b20133   4096 Mar 10  2013 cmitch21
  1 drwx--x--x 10 cnavarr9 b20127   4096 Apr 30 12:11 cnavarr9
  1 drwx--x--x 10 dbienenf b20123   4096 Mar 20  2012 dbienenf
  1 drwx--x--x 10 dlau13   b20135   4096 Jul 16 12:15 dlau13
  1 drwx--x--x 10 dmok1    b20137   4096 Sep 24 12:50 dmok1
  1 drwx--x--x 10 dnou     b20133   4096 Apr 23 14:12 dnou
  1 drwx--x--x 10 drajabar b20137   4096 Sep  3 20:20 drajabar
  1 drwx--x--x 10 drodri12 b20115   4096 Sep 27 17:25 drodri12
  1 drwx--x--x 10 ealberto b20113   4096 Dec 18  2012 ealberto
4

4 回答 4

9

而不是解析ls,使用find

find /students -perm -o=r

/students这将列出世界可读的所有文件和目录。

如果您不想递归到子目录并且只想查找目录,请说:

find /students -maxdepth 1 -type d -perm -o=r
于 2013-09-30T07:31:42.953 回答
0

ls -lR |grep "^d" | 切-c8-10 | grep 'rx' | 排序 | 唯一的-c

于 2013-09-30T07:51:50.307 回答
0

我告诉外壳程序在 ls -l 的第 8-10 个字符中搜索“rx”的出现,这是其他用户的权限(因此是世界可读的)。

不你不是。您正在该行中的任何位置寻找“rx”,然后从找到的行中取出第 8 到第 10 个字符。

find  /students -mindepth 1 -maxdepth 1 -type d -perm -005 | ...

“为什么你不应该解析 ls(1) 的输出”

于 2013-09-30T07:28:38.667 回答
0

ls -lad */ | grep 'r-x' | sort | uniq -c

-d用于仅列出目录。 */ 告诉 *nix 只搜索当前目录。

于 2015-11-24T10:25:15.057 回答