温馨提示×

linux strings能否递归搜索

小樊
44
2026-10-05 10:18:07
栏目: 智能运维

简短回答:strings 本身不能递归搜索目录,它只能处理单个文件或标准输入。

正确做法

你需要结合 find 或 grep -r 等工具来实现“递归搜索”。

示例 1:递归搜索目录下所有文件中的字符串

find /path/to/dir -type f -exec strings {} \; | grep "keyword"

示例 2:只搜索某类文件(如 .so)

find /path/to/dir -type f -name "*.so" -exec strings {} \; | grep "keyword"

示例 3:直接对目录下所有文件批量 strings(不区分类型)

strings /path/to/dir/* 2>/dev/null

(这个不是真正递归,只处理一层)


常见误区

  • ❌ strings -r /path (strings 没有 -r 递归参数)
  • ✅ 必须用 find / xargs 辅助

进阶:查找包含某字符串的文件

如果你想知道是哪个文件包含该字符串:

for f in $(find /path -type f); do
  if strings "$f" | grep -q "keyword"; then
    echo "$f"
  fi
done

如果你有具体场景(比如分析二进制、固件、日志),我可以给你更精确的命令。

0 踩