Сложение размеров файлов и каталогов, возвращаемых ls
, дает значение, отличное от значения, указанного в df
или du
. Команды df
и du
дают мне один и тот же вывод, поэтому у меня нет такой частой проблемы, но я знаю, что это было «пустое» устройство / папка, поэтому я хотел знать, почему это «не пустое» используется пространство.
Моя первая мысль была о скрытых файлах, поэтому я искал и нашел опцию -a, но цифры еще не складываются [24,4 КБ из ls -lah
сильно отличается от 5,1 МБ с df и du: вывод в конце сообщения. Еще одна странная вещь - вывод 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
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
каталог, проверяют там.