我在磁盘上有一个完整的 android 用户数据分区映像,它在 Thunar 上显示为 48.9 GiB,但在 ls 和 Baobab 上只有 3.8 GB。这是怎么回事?谢谢
答案1
这可能是疏文件;即有“洞”的文件,里面实际上什么都没有,只有零。由于您写道这是一个磁盘分区,所以这实际上很有可能。
[sh @ balrog] .../work/test/sparse 24 % ls -lh
total 1.1M
-rw-rw-r-- 1 sh 1000 1001M 5. Feb 2016 sparse-1MB.bin
-rw-rw-r-- 1 sh 1000 8.0K 16. Jun 2020 sparse-8k
-rw-rw-r-- 1 sh 1000 8.0K 16. Jun 2020 sparse-8k-zero
-rw-rw-r-- 1 sh 1000 1000M 5. Feb 2016 sparse-zero.bin
[sh @ balrog] .../work/test/sparse 25 % ls -sh1
total 1.1M
1.0M sparse-1MB.bin
4.0K sparse-8k
0 sparse-8k-zero
0 sparse-zero.bin
许多文件工具无法正确处理它们。问题是这些文件实际上有两种大小:标称大小(即实际大小ls -l
和图纳尔展示给你)和真正的已分配尺寸(哪个du -h
或ls -sh
显示)。
复制此类文件时一定要小心;某些工具可能会“填补”漏洞,并在原来有漏洞的地方写入零,从而真正占用名义大小。另请参阅man cp
和--sparse
选项。
如果你经常使用这类文件,请使用查询DirStat同时显示两种尺寸: