![无法在 AWK 中使用 find -print](https://linux22.com/image/63282/%E6%97%A0%E6%B3%95%E5%9C%A8%20AWK%20%E4%B8%AD%E4%BD%BF%E7%94%A8%20find%20-print.png)
我正在尝试组合一个命令来查找 SUID 系统可执行文件,这不是 RHEL 中的默认命令。
为此,我拉出本地文件系统的列表 (df --local -P),将其通过管道传递给 grep 以删除标头 (grep -v ^Filesystem),然后尝试使用 awk 来获取第 6 列,然后根据该文件夹运行搜索以查看是否有任何 SUID 系统可执行文件(awk '{ find $6 -xdev -type f -perm -4000 -print })。
我遇到的问题是,当我在 find 命令上使用 -print 时,出现语法错误,但是当我忽略它时,却没有得到任何输出。我不确定我是否真的了解发生了什么,以及如何解决故障。这就是我需要帮助的地方:-)。
完成此操作后,下一步是获取预定义的可执行文件数组(我知道默认情况下应该设置 SUID),并将它们从输出中删除。
df --local -P | grep -v ^Filesystem | awk '{ find $6 -xdev -type f -perm -4000 -print }'
awk: { find $6 -xdev -type f -perm -4000 -print }
awk: ^ syntax error
答案1
find
是可执行文件而不是awk
函数。 S,如果您想在 awk 中调用可执行文件,则必须使用该system()
函数来执行此操作。
cmd | awk '{system("find " $6 " -xdev -type f -perm -4000 -print")}'