为什么 du 显示 83GB 的文件占用零空间?

为什么 du 显示 83GB 的文件占用零空间?

在 中home/{user},我有一个名为 的文件,ntfs.txt其文件总大小为 83.3GB,磁盘大小为 0B。其所有者和组均为root。上次访问时间为 2012 年 7 月 24 日。 ls -l /home/romain/ntfs.txt输出-rw------- 1 root root 83346727424 janv. 15 2012 /home/{user}/ntfs.txtdu /home/romain/ntfs.txt给出0 /home/{user}/ntfs.txt。之前,我安装了 Wubi,后来将其移至单独的分区。我也刚刚删除了 Windows,但该文件仍在这里。它的大小奇怪吗?我可以删除它吗?

答案1

这可能是一个稀疏文件

du和返回大小差异很大的最常见情况ls是稀疏文件,这些文件通常由下载加速器或 bittorrent 客户端创建。ls返回分配的大小(应用程序将逐渐填满),而du返回实际大小用过的

如果实际大小为 0,那么其中实际上没有数据,可以安全地移动或删除它(但这不会节省任何磁盘空间,因为它不使用任何磁盘空间)。

使用稀疏文件进行实验:

你可以很容易地复制这个奇怪的场景,使用一个占用零空间的 1 GB 文件:

$ dd if=/dev/zero of=SparseFile bs=1 seek=1G count=0
$ ls -l 稀疏文件
-rw-rw-r-- 1 izx izx10737418247月24日 03:53 SparseFile
$ du SparseFile
0稀疏文件
$ stat 稀疏文件
  文件:`SparseFile'
  尺寸:1073741824  区块:0          IO 块:4096 常规文件
设备:805h/2053d Inode:400321 链接:1
访问:(0664 / -rw-rw-r--)Uid:(1000 / izx)Gid:(1000 / izx)

相关内容