目前我的服务器有问题。一位托管多个网站的用户遭到黑客攻击,他的一些 php 文件被修改。现在我想获取受感染文件的列表,还想检查他是否清理了整个混乱。
受感染文件的共同点是第一行非常长。所以我想找到服务器上最小长度为 1000 个字符的每个 php 文件。
好吧,我可以使用“find”找到所有php文件,并使用“head -n 1”获取第一行,并使用“wc -m”计算字符数。
但我怎样才能将它们结合在一起呢?
答案1
find
你可以用and来做到这一点awk
:
find . -type f -name '*.php' -size +1000c -exec awk '
FNR > 1 {nextfile}
length >= 1000 {print FILENAME}' {} +
该awk
脚本在每个文件的第一行之后跳到下一个文件。如果当前行长度 >= 1000 个字符,它将打印当前文件的文件名。
答案2
find
您可以使用和尝试这个grep
:
寻找 。 -type f -name '*.php' -exec grep '.\{1000\}' {} +