找到所有USER1拥有和user1的组中的Linux
问题描述:
目录中的可执行文件我想找到Linux中的目录中的所有user1
拥有和user1
的组可执行文件。找到所有USER1拥有和user1的组中的Linux
使用find
以下工作正常:
find /$mydir -type f -user user1 -perm -010
但需要知道我可以做同样的事情与ls
和grep
。
答
如果未指定maxdepth
,则find
命令执行递归搜索。
对于当前目录:
ls -l | awk '$3=="user1"&&$4=="user1group"&&substr($1,1,1)=="-"&&substr($1,7,1)=="x" {print $NF}'
当你知道user1的组会工作。
或者使用所有子文件夹群体中递归搜索:
user="user1";for s in `groups $user| sed 's/.*: //g'`; do awkstmt="ls -l | awk '\$3==\"$user\"&&\$4==\""$s"\"&&substr(\$1,1,1)==\"-\"&&substr(\$1,7,1)==\"x\" {print \$NF}'"; eval $awkstmt; done | sort | uniq
:当前文件夹中的组间
user="user1";for s in `groups $user| sed 's/.*: //g'`; do awkstmt="ls -R -l | awk '\$3==\"$user\"&&\$4==\""$s"\"&&substr(\$1,1,1)==\"-\"&&substr(\$1,7,1)==\"x\" {print \$NF}'"; eval $awkstmt; done | sort | uniq
或递归搜索