我正在尝试搜索文本字符串在文件内在我的服务器上,使用以下命令:
grep -iRl "database_password" /
但!它似乎在浏览后缀目录后挂起。
这是我在屏幕上看到的最后一个:
grep: /var/spool/postfix/private/relay: No such device or addressgrep: /var/spool/postfix/private/policyd-spf: No such device or address
grep: /var/spool/postfix/private/discard: No such device or address
grep: /var/spool/postfix/private/proxywrite: No such device or address
grep: /var/spool/postfix/private/virtual: No such device or address
grep: /var/spool/postfix/public/qmgr: No such device or address
grep: /var/spool/postfix/public/cleanup: No such device or address
grep: /var/spool/postfix/public/flush: No such device or address
grep: /var/spool/postfix/public/postlog: No such device or address
grep: /var/spool/postfix/public/pickup: No such device or addressgrep: /var/spool/postfix/public/showq: No such device or address
然后什么都没有..我可以使用 Ctrl-C 来停止它。
所以我想知道两件事,为什么它“似乎”停止了? (等了两个多小时),为什么 grep 报告“没有这样的设备或地址“仅在这些目录上?它没有说任何有关其他目录的信息?
答案1
...为什么 grep 在...这些目录上报告“没有这样的设备或地址”?
这些不是目录,它们是 Unix 域套接字:
# file /var/spool/postfix/public/pickup
/var/spool/postfix/public/pickup: socket
当尝试从此类文件中读取时,您看到的消息并不意外,并且不太可能与您认为的grep
“挂起”相关。
...它似乎在浏览后缀目录后自行挂起。
需要考虑的一件事是,下面的文件/
将返回无限的字节流(例如,/dev/urandom
)。有可能grep
正在读取这些文件之一来查找您的模式。
例如考虑:
# grep $(uuidgen) /dev/urandom
这可能会运行真的很久。
我建议您对目标搜索目录更有选择性。