文件“hexdump”中的这些数字是什么意思?

Arc*_*T3K 5 files hexdump

我创建了一个简单的文件1.txt

echo "hello" >> 1.txt
Run Code Online (Sandbox Code Playgroud)

然后我把它扔了:

hexdump 1.txt
Run Code Online (Sandbox Code Playgroud)

和终端输出:

0000000 68 65 6c 6c 6f 0a                              
0000006
Run Code Online (Sandbox Code Playgroud)

什么00000000000006意味着什么呢?

tec*_*raf 10

本例中的0000000是特定行中打印的第一个字节的偏移量(十六进制,从文件开头开始计算)。

本例中的0000006是文件中的字节数(十六进制)。单词“hello”中有五个字符和一个换行符 (0x0A)。

尝试回显更长的文本或重复echo "hello" >> 1.txt几次以增加文件的大小。然后看hexdump结果。

  • `000006` 不是文件的一部分。它只是一个数字,表明文件有多大。你不能把位放在“后面”,因为它不存在。您可以在文件末尾添加位,但这只会使文件变大。 (2认同)
  • 实际上,您可能可以在那里放一些位,因为文件分配几乎总是在块中完成。也就是说,你的 6 字节文件可能会占用 4096 字节块的前 6 字节,然后剩下的 4090 字节**不会被另一个文件使用**。您需要原始磁盘访问权限才能访问这些“秘密”位。 (2认同)