使用 Linux 經常會遇到這種情況:只知道文件中包含某些特定的字符串,但是不知道具體的文件名。需要根據“特定的字符串”反向查找文件。
示例(路徑文件如下):
./miracle/luna/a.txt
a.txt 文件中的內容如下
Hello, World!
查找當前目錄下,包含“Hello”字符串的所有文件
【方式1】(其中,r 表示遞歸, n 表示查詢結果顯示行號):
grep -rn "Hello" ./
效果如下:
【方式2】
find ./ -name "*.*" | xargs grep "Hello"
效果如下:
【方式3】(-l 表示只顯示文件名)
find . | xargs grep -ri "Hello"
或
find . | xargs grep -ri "Hello" -l
效果如下:
【方式4 】(推薦,更為通用!)
如果不知道文件所在的大致目錄,知道文件的類型(例如文本類型 txt),可以在root根目錄 / 下根據特定字符串進行查找:
find / -type f -name "*.txt" | xargs grep "Hello"
效果如下:
https://www.cnblogs.com/miracle-luna/p/11037614.html