温馨提示×

如何批量用linux strings

小樊
53
2026-09-29 14:50:45
栏目: 智能运维

在 Linux 下,strings 命令用于从二进制文件中提取可打印字符串。如果你想要批量对多个文件使用 strings,常见做法如下:


一、批量处理一个目录下的所有文件

1. 使用 for 循环

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

只处理二进制文件(更严谨):

for f in *; do
    if file "$f" | grep -q "ELF"; then
        echo "==== $f ===="
        strings "$f"
    fi
done

二、递归处理子目录(推荐)

2. 使用 find

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

给每个文件加文件名:

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

三、批量输出到文件(常用)

3. 每个文件一个输出

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

4. 全部合并到一个文件

find . -type f -exec strings {} \; > all_strings.txt

四、结合 xargs 提高性能

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

五、常见实用参数

  • -n 8:只显示长度 ≥ 8 的字符串
  • -e:指定编码(如 l、b、s)

示例:

strings -n 6 binary_file

如果你有具体场景(如:提取固件、分析恶意样本、只提取 URL / IP),可以告诉我,我可以给你更精准的批量脚本。

0 踩