【linux】文件与目录命令 - xxd

文件十六进制转换命令的使用


xxd 命令是一个十六进制查看工具,用于将文件内容转换为十六进制表示(hexdump),并支持将十六进制格式还原为原始文件。它常用于调试和分析二进制文件。

1. 基本用法
  • 语法:

    xxd [选项] 文件
    xxd [选项] -r [文件]
    
  • 功能:

    • 将文件或标准输入的数据转换为十六进制格式输出。
    • 将十六进制表示还原为原始文件。
  • 此命令是否系统自带:通常系统自带的。若未安装,可以使用以下方法手动安装:

    • Debian/Ubuntu:

      sudo apt install vim-common
      
    • RHEL/CentOS/Fedora:

      sudo yum install vim-common
      
    • 其他发行版: 通过包管理器安装 vim-common


2. 常用参数
  • 十六进制转换:
    • -g <字节数>:设置每组的字节数(默认为 2)。
    • -c <列数>:设置每行显示的字节数(默认为 16)。
    • -u:输出大写十六进制字符。
  • 偏移量控制:
    • -o <偏移量>:从指定偏移量开始显示。
    • -s <偏移量>:跳过指定字节数开始输出。支持正负值,负值表示从文件末尾开始计算。
  • 还原十六进制表示:
    • -r, --reverse:将十六进制格式还原为原始文件。
    • -p:简化输出格式,仅显示十六进制字符串(无偏移和 ASCII)。
  • 其他选项:
    • --help:显示帮助信息。
    • --version:显示命令版本信息。

3. 用法举例
  • 将文件转换为十六进制表示:

    xxd file.bin
    
  • 设置每行显示 8 个字节:

    xxd -c 8 file.bin
    
  • 从偏移量 128 开始输出:

    xxd -s 128 file.bin
    
  • 输出大写十六进制表示:

    xxd -u file.bin
    
  • 将十六进制表示还原为文件:

    xxd -r hexdump.txt restored_file.bin
    
  • 简化输出,仅显示十六进制字符串:

    xxd -p file.bin
    
  • 从标准输入读取并转换为十六进制:

    echo "Hello, world!" | xxd
    

4. 注意事项
  • 使用 -s-o 参数时,确保指定的偏移量在文件范围内,否则可能输出空内容或错误信息。
  • 在还原十六进制文件时(使用 -r),格式必须与 xxd 默认输出一致,否则可能导致还原失败或数据错误。
  • 对于较大的文件,十六进制输出可能非常冗长,建议结合管道(如 headless)查看部分内容。
  • 使用 -p 参数生成的简化十六进制格式不能直接还原为原始文件,需确保正确格式化后再使用 -r
  • xxd 是用于文件分析的辅助工具,无法直接解压或解码压缩和加密数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小鹏linux

感谢老板,老板大气

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值