du 和 ls 命令报告错误的目录大小

du 和 ls 命令报告错误的目录大小

我已经习惯了du命令。我经常将它与-h选项一起使用。我在一个文本文件中报告结果,用它来跟踪空间消费者。

但我今天很奇怪看到一个目录被报告为使用32PB(拍字节)。 128 GB 磁盘上的容量很大......

du所以,我的问题是:这是命令中的错误还是标志中的错误du -h?知道该ls命令还会报告一些异常数量,我可以对 FS 进行哪些额外检查:


Shell = /bin/bash,
Path =  ~/.../data  > ls -la
total 39582418599960
drwxrwxr-x 2 user user  4096 jan  4 09:49 .
drwxrwxr-x 4 user user  4096 jan  4 09:49 ..
-rw-rw-r-- 1 user user 11330 jan  4 09:49 Fortress.dat
-rw-rw-r-- 1 user user    54 jan  4 09:49 villages.dat

如果我在命令中使用其他选项ls,结果会有所不同:


Shell = /bin/bash
Path =  ~/.../data  > ls -l
total 16
-rw-rw-r-- 1 user user 11330 jan  4 09:49 Fortress.dat
-rw-rw-r-- 1 user user    54 jan  4 09:49 villages.dat

如果我使用du -a,我会发现问题出在当前目录上。这就是为什么简单的ls -l不报告问题(它的报告中不包括当前目录):


Shell = /bin/bash
Path =  ~/.../data  > du -a
12  ./Fortress.dat
4   ./villages.dat
39582418599956  .

以下是我的磁盘的一些特征:


Disque /dev/sda : 128GB
Taille des secteurs (logiques/physiques): 512B/512B
Table de partitions : msdos

Numéro  Début   Fin    Taille  Type      Système de fichiers  Fanions
 1      1049kB  124GB  124GB   primary   ext4                 démarrage
 2      124GB   128GB  4083MB  extended
 5      124GB   128GB  4083MB  logical   linux-swap(v1)

同时,我读到了有关“稀疏”文件的信息,这可能会改变报告的文件大小。我在这里不明白的是,问题似乎出在目录上......是否有稀疏目录?

除此之外,我的 SDD 上没有重现任何问题。

感谢您的任何建议......马克。

答案1

对我来说,这看起来像是文件系统损坏;要修复它,请执行以下操作

sudo touch /forcefsck

然后重启。这将强制对文件系统进行 fsck。

相关内容