温馨提示×

linux strings报错怎么解决

小樊
37
2026-09-23 18:45:01
栏目: 智能运维

strings 是 Linux 下一个常用命令(通常来自 binutils),用于从二进制文件中提取可打印字符串。如果报错,常见原因和对应解决办法如下:


一、常见报错及解决方法

1. command not found: strings

原因:系统没有安装 strings 命令。

解决:

  • Debian / Ubuntu:
    sudo apt update
    sudo apt install binutils
    
  • CentOS / RHEL:
    sudo yum install binutils
    
  • Arch:
    sudo pacman -S binutils
    

2. strings: command not found 但已安装

原因:不在 PATH 中,或使用了最小化系统。

解决:

which strings
ls /usr/bin/strings

若不存在但已安装,可手动指定路径:

/usr/bin/strings file

3. strings: file: No such file or directory

原因:文件不存在或路径错误。

解决:

ls -l file

确认路径是否正确,或使用绝对路径。


4. strings: file: Permission denied

原因:没有读取权限。

解决:

sudo strings file

或:

chmod +r file

5. strings: file: Invalid argument / File format not recognized

原因:

  • 文件不是普通文件(如目录、设备文件)
  • 文件损坏或非二进制

解决:

file file

确认文件类型;若不是文件,不要对目录使用 strings。


6. strings: memory exhausted

原因:文件过大(如几十 GB 的镜像)。

解决:

  • 限制输出:
    strings file | head
    
  • 只扫描部分:
    dd if=file bs=1M count=100 | strings
    

7. BusyBox 环境报错

某些嵌入式系统使用 BusyBox 的 strings,功能有限。

解决:

  • 查看版本:
    strings --help
    
  • 尽量使用完整版 binutils

二、替代方案(如果 strings 不可用)

cat file | tr -c '[:print:]\n' ' ' | grep .

或:

grep -a -o '[^[:space:]]*' file

如果你能把具体的报错信息贴出来(完整一行),我可以更精准地帮你定位问题。

0 踩