如何search整个系统(Linux)的特定string?

我需要find这个string:

7z a -p 

我试过了:

grep -iR“7z a -p”/

但似乎在一段时间后,有很多:

 grep: /sys/class/vc/vcs5/power/autosuspend_delay_ms: Input/output error grep: warning: /sys/class/vc/vcsa5/subsystem: recursive directory loop grep: /sys/class/vc/vcsa5/power/autosuspend_delay_ms: Input/output error grep: warning: /sys/class/vc/vcs6/subsystem: recursive directory loop 

编辑 – 但是,这似乎只是看静态文本文件。 另外,运行时区域,内存和进程呢? 即整个系统? 例如对于MySQL:

 ps aux | grep "mysql -u user -p" 

显示:

 38164 4292 pts/0 S+ 13:16 0:00 mysql -uodbcuser -px xxxxxxxx 

有趣的是ps aux确实用xxxxx来隐藏密码。 我可以尝试使用7zip,但速度很快,它必须在运行ps aux命令的同时运行才能“捕获”。

您应该从命令中排除像/sys//proc//dev/这样的目录:

 grep -iR --exclude-dir='/sys' --exclude-dir='/proc' --exclude-dir='/dev' "7z a -p" / 

据推测,该string是在一个脚本文件。 你可以尝试ack (又名ack-grep )。

它将自动select脚本和源文件,但可以使用-a选项search所有文件(在版本1中)。 在版本2中,默认search所有非二进制文件。

您可以指定要忽略的目录,或者让search关注或忽略特定的文件types。

 --[no]ignore-dir=name --[no]elisp .el --[no]erlang .erl .hrl --[no]fortran .f .f77 .f90 .f95 .f03 .for .ftn .fpp for a few examples 

有许多与GNU grep相同的选项,所以他们会很熟悉。

内置过滤系统function强大,可configuration。 由于过滤,search可以比那些使用grep更快。

安装不能简单。

文件

你可以用错误来排除错误

grep -iR“7z a -p”/ 2> / dev / null