在 RHEL (Gnu/Linux) 上扫描/搜索文件中的单词的正确方法是什么

在 RHEL (Gnu/Linux) 上扫描/搜索文件中的单词的正确方法是什么

我们想要在 Gnu/Linux 机器上扫描单词。一个简单的方法是例如grep

grep -r "some_word" /var

但是,如果我们想要扫描整个文件系统,那么我们不能只扫描grep -r "some_word" /,因为它扫描 , 中的文件/proc(这些应该被排除)。因此我想知道是否有一些有用的工具可以用于此目的扫描?

我知道在 gnu 中grep- 我们可以选择--exclude-dir,但我仍然想知道在 Gnu/Linux 文件系统上搜索单词的更好方法。

答案1

find / -path /sys -prune -o -path /proc -prune -o -type f -exec grep -r "some_word" {} \;

我相信这就是你想要的

答案2

如果您使用它的选项,该find实用程序可以保留在单个文件系统中-xdev。这意味着该命令

find / -xdev -type f -exec grep -w -F 'word' {} +

...将保留在根文件系统内,不会进入/sys/proc

在根文件系统中,它将批量传递文件路径名来grep查找单词word

如果您还想搜索安装了其他文件系统,则只需将它们列为顶级搜索路径即可。例如,如果/home/tank是单独安装的分区,并且您想要搜索它们,

find / /home /tank -xdev -type f -exec grep -w -F 'word' {} +

-xdev谓词是标准的,并且应该适用于大多数(如果不是全部)的 实现find

相关内容