我们想要在 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
。