news 2026/4/16 20:01:10

Linux快速查看文件末尾字节方法

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Linux快速查看文件末尾字节方法

命令结构

tail -c 100 filename | xxd

这个命令由三部分组成,通过管道|连接:

1.tail -c 100 filename

  • tail: 显示文件末尾内容的命令
  • -c 100: 指定以字节为单位,显示最后 100 个字节
    • -c表示 “character”,但在二进制上下文中就是字节
    • 100是要显示的字节数(可以是任意数字)
  • filename: 要操作的目标文件

作用: 读取文件的最后 100 个字节,并将这些字节输出到标准输出(stdout)。

2.管道符|

  • 作用: 将前一个命令(tail)的输出,作为后一个命令(xxd)的输入
  • 机制: 创建一个数据传输通道,将tail的标准输出重定向到xxd的标准输入

3.xxd

  • 功能: 十六进制转储工具(hexdump 的替代/增强版)
  • 特点:
    • 默认以分组形式显示十六进制(每 2 字节一组,如4b6f
    • 同时显示对应的 ASCII 字符
    • 显示偏移地址(文件位置)

整体工作流程:

  1. tail定位到文件末尾,读取最后 100 个字节
  2. 这 100 个字节通过管道传递给xxd
  3. xxd将这些字节转换为十六进制格式并显示

示例输出解释:

$tail-c32test.txt|xxd# 输出可能如下:00000000: 6c69 6e6520330a6c 696e6520340a 6c69 ne3.line4.li 00000010: 6e6520350a6c 696e6520360a 0a0a ne5.line6...

字段解释

  • 00000000:行首的偏移地址(十六进制)
  • 6c69 6e65 2033 0a6c 696e 6520 340a 6c69: 十六进制表示的字节
    • 每 2 个十六进制数字 = 1 个字节
    • 每组(如6c69)= 2 个字节(4 个十六进制数字)
  • ne 3.line 4.li: ASCII 字符表示
    • 6c= ‘l’,69= ‘i’,6e= ‘n’,65= ‘e’, 等等
    • 不可打印字符显示为.

变体和对比:

不同显示格式

# 1. 紧凑格式(一行显示更多)tail-c100file|xxd -c32# 每行显示32字节# 2. 单字节分组(更清晰)tail-c100file|xxd -g1# 每字节一组显示# 3. 纯十六进制(无ASCII侧边栏)tail-c100file|xxd -ps# 连续十六进制字符串# 4. 显示原始偏移量tail-c100file|xxd -s 0x1000# 假设你希望偏移从0x1000开始

hexdump -C对比

# 功能相似,但格式不同tail-c100file|hexdump -C# hexdump -C 输出格式:# 00000000 6c 69 6e 65 20 33 0a 6c 69 6e 65 20 34 0a 6c 69 |line 3.line 4.li|# 更传统的格式,单字节显示

实际应用场景

  1. 查看文件尾部的魔数/签名
tail-c8image.jpg|xxd# 查看JPEG的结束标记
  1. 检查日志文件最后的二进制数据
tail-c256app.log|xxd -g1
  1. 快速查看文件格式
# 查看文件最后部分,判断是否有特殊结构tail-c64database.db|xxd

这个组合命令特别适合需要查看文件尾部十六进制格式的场景,结合了tail的截取能力和xxd的格式化显示能力。


当然可以!有几种快速查看文件最后几个字节的方法:

1.最常用的方法 -tail命令

# 查看最后 100 个字节(以文本形式)tail-c100filename# 查看最后 50 个字节tail-c50filename

2.使用hexdump查看最后字节的十六进制

# 查看最后 100 个字节的十六进制tail-c100filename|hexdump -C# 或者直接让 hexdump 显示最后部分hexdump -C filename|tail-n10

3.更专业的十六进制查看工具

# 使用 xxd 查看最后 100 个字节tail-c100filename|xxd# 查看最后 64 个字节并显示偏移量tail-c64filename|xxd -g1

4.使用od(八进制/十六进制转储)

# 查看最后 50 个字节的十六进制tail-c50filename|od -Ax -tx1# 以十六进制和 ASCII 格式查看tail-c100filename|od -Ax -tx1z

5.最简洁的实时查看

# 只查看最后几个字节(例如最后32字节)tail-c32filename|cat-A# 如果需要连续监控文件尾部变化tail-c100-f filename# 会持续显示新增内容

示例对比:

# 查看文件最后 64 字节的不同方式:# 1. 纯文本查看tail-c64file.bin# 2. 十六进制 + ASCII(最常用)tail-c64file.bin|hexdump -C# 3. 紧凑的十六进制tail-c64file.bin|xxd -ps -c16# 4. 带行号的十六进制tail-c64file.bin|xxd -g1

推荐用法:

  • 快速查看文本文件末尾tail -c N
  • 查看二进制文件末尾十六进制tail -c N | hexdump -C
  • 需要精确的字节偏移tail -c N | xxd -g 1

其中hexdump -C是最常用的格式,因为它同时显示:

  • 偏移地址
  • 十六进制字节
  • ASCII 字符表示
  • 每行 16 字节的标准格式
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!