расхождение с выводом 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
задан 11 May 2015 в 16:35

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

4
ответ дан 12 May 2015 в 02:35
  • 1
    Извините, нет... У Вас есть конфликт интересов. Вы не можете одновременно защитить себя и быть высшей линейкой машины. Это просто логически невозможно . Думайте об этом... базируются = полная команда машины и установить и удалить программное обеспечение, Вам нужно это. На данном этапе Вам нужно решение в Вашей сети. В основном брандмауэр или прокси, промежуточный Ваша машина и Интернет, которым полностью управляет Ваш родительский элемент, к которому у Вас нет доступа. Проверьте свой маршрутизатор. Это могло бы иметь что-то как этот. – jawtheshark 11 August 2016 в 01:41

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

Похожие вопросы: