Расхождение с выводом du df

Добавление размеров файлов и каталогов, возвращаемых 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

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 каталог, проверьте там.

Другие вопросы по тегам