将返回的文件和目录的大小相加,得到的值与或ls
给出的值不同。和命令给出相同的输出,因此我不会经常遇到这个问题,但我知道这是一个“空”设备/文件夹,所以我想知道为什么“不空”使用的空间。df
du
df
du
我首先想到的是隐藏文件,所以我四处搜索,找到了 -a 选项,但数字仍然不对 [24.4 KBls -lah
与消息末尾的 df 和 du: 输出的 5.1 MB 相差甚远]。另一个奇怪的事情是 e2fsck 输出,似乎有 13 个文件 [.、..、lost+found,但如何找到剩下的 10 个?]
有人知道我还缺少什么吗?
cd /mnt
# ls -lah
total 24
drwxr-xr-x 3 root root 20.0K May 7 09:36 .
drwxrwxr-x 17 root root 420 May 7 09:26 ..
drwx------ 2 root root 4.0K Apr 21 13:42 lost+found
# df -h /mnt
Filesystem Size Used Available Use% Mounted on
mmcblk0p1 1.8G 5.1M 1.7G 0% /mnt
# du -d 0 -h /mnt
5.1M /mnt
# umount /mnt
# e2fsck -C 0 /dev/mmcblk0p1
e2fsck 1.42.12 (29-Aug-2014)
/dev/mmcblk0p1: clean, 13/117360 files, 8693/468990 blocks
答案1
ls
不显示目录内容的大小。它显示用于存储描述目录的元数据的大小。该大小取决于目录中的文件数量及其(和目录)名称的长度,而不是其大小。为了说明这一点,我将创建不同数量的空(0 大小)文件:
## 10 files
for i in {1..10}; do touch foo/$i; done
$ ls -l
drwxr-xr-x 2 terdon terdon 4096 May 11 16:36 foo
$ du -sc foo/* | grep total
0 total
## 100000 files
$ touch foo/file{1..100000}
ls -l
drwxr-xr-x 2 terdon terdon 2801664 May 11 16:37 foo
$ du -sc foo/* | grep total
0 total
ls
正如您上面所看到的,尽管目录的实际大小相同,但报告的大小发生了变化。
因此,您丢失的文件可能位于该lost+found
目录中,请检查那里。