温馨提示×

怎样批量运行linux strings

小樊
39
2026-10-20 01:05:05
栏目: 智能运维

在 Linux 下“批量运行 strings”通常指对多个文件(或目录下所有文件)依次执行 strings 并收集结果。下面按常见场景给你几种做法。


一、对当前目录下所有文件批量运行

1️⃣ 最简单:用 for 循环

for f in *; do
    echo "==== $f ===="
    strings "$f"
done

只处理普通文件:

for f in *; do
    [ -f "$f" ] && strings "$f"
done

二、递归处理整个目录(包括子目录)

2️⃣ 使用 find

find . -type f -exec strings {} \;

每个文件加文件名:

find . -type f -exec sh -c 'echo "== $1 =="; strings "$1"' _ {} \;

三、把结果输出到文件(推荐)

3️⃣ 汇总到一个文件

> strings.txt
for f in *; do
    [ -f "$f" ] && {
        echo "==== $f ====" >> strings.txt
        strings "$f" >> strings.txt
    }
done

四、并行批量运行(大量文件时更快)

4️⃣ 使用 xargs -P

find . -type f | xargs -P 8 -I {} sh -c 'echo "== {} =="; strings "{}"'

-P 8 表示 8 个进程并行(按 CPU 核数调整)


五、只提取特定内容(常见需求)

5️⃣ 过滤字符串

strings file | grep -i "password"

批量:

find . -type f -exec strings {} \; | grep -i "error"

六、二进制 + 特定最小长度

strings -n 8 file

批量:

find . -type f -exec strings -n 8 {} \;

七、典型实战例子(CTF / 逆向常用)

find ./bin -type f -exec sh -c 'echo "== $1 =="; strings -n 6 "$1"' _ {} \; > out.txt

如果你能说明:

  • 是 文件太多?目录结构?
  • 是否要 并行 / 输出格式 / 过滤关键词

我可以给你更精确的命令。

0 踩