![du 和 ls 命令报告错误的目录大小](https://linux22.com/image/5774/du%20%E5%92%8C%20ls%20%E5%91%BD%E4%BB%A4%E6%8A%A5%E5%91%8A%E9%94%99%E8%AF%AF%E7%9A%84%E7%9B%AE%E5%BD%95%E5%A4%A7%E5%B0%8F.png)
我已经习惯了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。