В чем разница между размером файла в ls -l и du-sh?

У меня самые запутанные квесты, которые беспокоили меня годами. В чем разница между размером файла, заданным ls -l и du -sh *.

GRILL:/user/MAIL/DATA>ll total 270 drwxr-xr-x 11 user users 1024 Mar 21 2013 . drwxr-xr-x 6 user users 96 May 28 2008 .. drwxr-xr-x 10 user users 1024 Jun 14 09:40 Rod drwxr-xr-x 3 user users 96 Sep 17 2010 Atlas drwxr-xr-x 2339 user users 132096 Jun 14 15:00 Admin drwxr-xr-x 3 user users 96 Jul 11 2014 DE drwxr-xr-x 5 user users 96 Jun 14 08:30 Express drwxr-xr-x 3 user users 96 Sep 17 2010 Deferred drwxr-xr-x 2 user users 96 Feb 10 2009 Imagi drwxr-xr-x 6 user users 1024 Jul 11 2014 NO drwxr-xr-x 3 user users 2048 Mar 21 2013 SE -rw-r--r-- 1 user users 55 Mar 21 2013 cmd GRILL:/user/MAIL/DATA>du -sk * 6723 Rod 0 Atlas 435494 Admin 2 DE 111273 Express 2 Deferred 0 Imagi 541 NO 12 SE 1 cmd 

Размер Admin в ls -l равен 132096 , я попытался удалить 400000+ файлов из каталога Admin, и я не нашел, что пространство немного сократилось.

В то время как du -sk дает размер 435494 . Какой из них является оригинальным размером файла и в чем разница между ними? Может ли кто-нибудь доработать?

2 Solutions collect form web for “В чем разница между размером файла в ls -l и du-sh?”

Для файлов файл ls -l file показывает (помимо всего прочего) размер file в байтах, а du -k file показывает пространство, занимаемое file на диске (в единицах 1 kB = 1204 байта). Поскольку дисковое пространство выделяется в блоках, размер, обозначенный du -k , всегда немного больше пространства, обозначенного ls -kl (что то же самое, что и ls -l , но в единицах 1 kB).

Для каталогов ls -ld dir показывает (среди прочего) размер списка имен файлов (вместе с несколькими атрибутами) файлов и подкаталогов в каталоге. Это всего лишь список имен файлов, а не содержимого файлов или подкаталогов. Таким образом, этот размер увеличивается, когда вы добавляете файлы в dir (даже если файлы пусты), но он остается неизменным, когда один из файлов в каталоге растет.

Однако, когда вы удаляете файлы из каталога, пространство из списка не восстанавливается немедленно, а записи для удаленных файлов помечены как неиспользуемые и позже перерабатываются (это зависит от реализации, но то, что я описал, универсальное поведение в эти дни). Вот почему вы можете не видеть никаких изменений в ls -ld выходе, когда вы удаляете файлы ls -ld , если когда-либо.

Наконец, du -ks dir показывает (оценку) пространство, занимаемое на диске всеми файлами в каталоге, вместе со всеми файлами во всех подкаталогах dir , в единицах 1 kB = 1024 байта. Принимая во внимание приведенное выше описание, это не имеет никакого отношения к выходу ls -kld dir .

ls -l показывает только размеры файлов на уровне 1.

du отобразит размеры папок рекурсивно (сумма размеров файлов в папке).

  • поведение `ls` на ошибке EACCES для / root и / root / some-frbish
  • LS_COLORS для 256-цветного терминала
  • Почему «ls» спорадически выводит только «.» В корневой каталог внешнего диска?
  • Список файлов, которые не начинаются с определенного префикса
  • Как сортировать файлы по части имени файла?
  • Всего в `ls -l`
  • Псевдоним для списка каталогов, отсортированный по времени, измененный в обратном порядке
  • Пользователь не может видеть разрешения каталога
  • Каково определение префикса, номера версии и суффикса в имени файла для сортировки версий?
  • Каковы все возможные письма для разрешений файлов Unix?
  • ls для отмены '-h'
  • Изменение цвета dir в выводе bash
  • Interesting Posts

    Искусственно первичный буферный кеш?

    Создание XMODIFIERS = @ im = none стандарт emacs24

    Я не могу запустить докер на linux mint

    Получать ошибки ввода-вывода на USB-портах

    Как сделать ls с подстановочным знаком и посмотреть имя каталога

    Запустить R-код из vim-r-plugin в виде отдельного окна вместо внутреннего tmux / screen?

    Egrep первые несколько символов в каждой строке?

    Редактируйте несколько строк из определенного раздела INI-файла

    Как получить завершение вкладки при использовании фигурных скобок в Bash

    Изменить название жесткого диска

    Ярлык для выбранного текста Google

    xrandr scale 2×2 для мультидисплея (4K HiDPI и Full HD mix) – размытый вывод

    Как я могу рекурсивно заменить строку в именах файлов и каталогов?

    Почему нам нужно использовать visudo вместо прямой модификации файла sudoers?

    Генерировать необработанные фреймы Ethernet с предварительно загруженными полезными нагрузками памяти с интервалами <1 мс

    Linux и Unix - лучшая ОС в мире.