温馨提示×

linux strings怎么批量处理

小樊
46
2026-09-11 09:55:48
栏目: 智能运维

在 Linux 下,strings 命令用于从二进制文件中提取可打印字符串。所谓“批量处理”,通常有以下几种常见场景,下面分别说明。


一、对多个文件批量执行 strings

1️⃣ 直接传多个文件

strings file1 file2 file3

2️⃣ 使用通配符

strings *.bin
strings /opt/app/*

3️⃣ 递归处理目录下所有文件

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

只处理某些类型:

find ./ -type f -name "*.so" -exec strings {} \;

二、批量处理并把结果分开保存

每个文件输出到对应 .txt

for f in *; do
    strings "$f" > "$f.txt"
done

使用 find

find ./ -type f -exec sh -c '
    strings "$1" > "$1.txt"
' _ {} \;

三、批量提取并合并结果(带文件名)

strings -f *.bin

输出示例:

a.bin: hello world
b.bin: test string

递归版本:

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

四、结合 grep 批量过滤

提取包含某关键字的字符串

strings *.bin | grep "password"

显示文件名 + 内容

strings -f * | grep "version"

五、批量处理并去重

find ./ -type f -exec strings {} \; | sort | uniq

六、提高性能(大文件 / 多文件)

find ./ -type f -print0 | xargs -0 strings

七、常见参数说明

参数 说明
-n 最小字符串长度
-f 显示文件名
-e 指定编码(如 s l b B

示例:

strings -n 6 -f *.bin

如果你有具体场景(比如:批量分析固件、逆向 ELF、提取日志字符串、配合脚本处理),可以告诉我,我可以给你更精确的方案。

0