我需要在整个Linux文件系统中找到一个字符串,并使用grep在文件系统中查找此字符串的所有实例。我得到了两种类型的结果:一种来自我的/.bash_history
,另一种来自proc
目录。很明显,答案在于某种过程。
/proc
结果看起来像这样:
Binary file /proc/12345/task/12345/cmdline matches
当我尝试导航到目录12345时,它不存在。我在redhat手册中读到/ proc文件系统中的文件往往是虚拟的。我猜测,当grep完成搜索时,该过程可能已经结束,我导航到相应的目录。 有没有办法在与grep相同的命令中打印进程的内容?在这种情况下,它返回两个结果。如何阅读每个结果的内容? 谢谢!
编辑:我使用grep -rs "*string_name*" /
来查找字符串
答案 0 :(得分:2)
我猜这个过程可能已经结束了
正确:这是您的grep
进程匹配。
当您的grep
正在运行时,命令行文件看起来像这样:
grep^@-r^@string^@/^@
其中“有趣”字符是NUL
个分隔参数的字符。
有没有办法在与grep相同的命令中打印进程的内容?
从man grep开始,在命令行中添加-a
会打印二进制文件,就好像它是文本一样(grep
认为cmdline
是二进制文件,因为它包含嵌入式NUL
s)。