我想在Linux目录下找到所有user1
拥有和user1
所属组的可执行文件.
使用 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}'
将在您知道用户 1 的组时工作。
或者在所有子文件夹中的组中使用递归搜索:
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
或者在当前文件夹中的组之间递归搜索:
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
关于linux - 在Linux中查找目录下所有user1拥有和user1所属组的可执行文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46066523/