如果我在磁盘上有一个文件(为了讨论而创建一个健康的文件,但我可能有一个以前的文件,可能在某些调试活动中损坏了):
/tmp/tmp.gEJmJSc2zQ> echo "hello" > hello.txt
我可以看到这个文件,即使它很小,实际上使用了一个完整的 4KiB 块,正如预期的那样(这是我的文件系统上的块大小,默认的 Ubuntu 20.04):
/tmp/tmp.gEJmJSc2zQ> ls -lsh hello.txt
4,0K -rw-rw-r-- 1 jrmet jrmet 6 juni 6 14:27 hello.txt
我知道如何获取有关文件使用的特定块的更多信息:
/tmp/tmp.gEJmJSc2zQ> filefrag -b4096 -v hello.txt
Filesystem type is: ef53
File size of hello.txt is 6 (1 block of 4096 bytes)
ext: logical_offset: physical_offset: length: expected: flags:
0: 0.. 0: 14582783.. 14582783: 1: last,eof
hello.txt: 1 extent found
我的问题是:如何从头到尾检查包含此文件的完整 4KiB 块的完整原始二进制数据(即不仅仅是文件的原始二进制数据,我已经知道如何做到这一点 :) )xxd
?是否有一个特定的命令可以向我展示这个,和/或 和 的智能dd
组合xxd
?我会很好的解决方案,要么在编辑器中打开 4KiB 块的完整原始二进制数据,xxd
和/或将这些二进制数据转储到磁盘上的文件的方法(然后我知道如何检查任何工具啦xxd
)。