第一行返回几十个结果。第二行不返回任何内容。
sudo find /var/www/ . -type 'f' -name index.php | grep "php"
sudo find /var/www/ . -type 'f' -name index.php | grep "require"
有一些文件index.php
包含两个文本字符串。为什么第二行似乎不起作用?
您想在管道到 grep 之前调用 xargs。您所拥有的是 grep 搜索 find 的结果,而不是 find 找到的文件的内容。
sudo find /var/www/ . -type 'f' -name index.php | xargs grep "php"
如果您进行大量这样的搜索,您可能需要查看ack。例如,要在 /var/www 中的所有 PHP 文件中搜索“require”,您可以使用:
ack --php require /var/www