Linux

在 RHEL(Gnu/Linux)上掃描/搜尋文件中的單詞的正確方法是什麼

  • January 5, 2022

我們想在我們的 Gnu/Linux 機器上掃描單詞。一個簡單的方法是例如grep

grep -r "some_word" /var

但是,如果我們要掃描整個文件系統,那麼我們不能只做grep -r "some_word" /,因為它是掃描 , 中的文件/proc(這些應該是排除的)。因此我想知道是否有一些有用的工具可以為此目的進行掃描?

我知道在 gnu 中grep- 我們可以選擇--exclude-dir,但我仍然想知道在 Gnu/Linux 文件系統上搜尋單詞的更好方法。

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

我相信這就是你想要的

如果您將其與選項一起使用,則可以使該find實用程序保留在單個文件系統中。-xdev這意味著命令

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

… 將留在根文件系統中,而不是進入/sysor /proc

在根文件系統中,它會傳遞成批的文件路徑名grep來查找單詞word.

如果您還安裝了其他要搜尋的文件系統,則只需將它們列為頂級搜尋路徑。例如,如果/home/tank是單獨掛載的分區,並且您要搜尋它們,

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

謂詞是標準的-xdev,應該可用於大多數(如果不是全部)find.

引用自:https://unix.stackexchange.com/questions/685134