Есть ли способ заставить Thunar отображать «рекурсивный» размер файла?

Я использую Thunar 1.6.3 и в настоящее время, когда я смотрю на кучу папок, это выглядит примерно так:

Folder 1        8,2 kB
Folder 2        4,1 kB
Folder 3        4,1 kB
Folder 4        0   kB

Я не уверен, откуда появляются эти «размерные» числа от, но я уверен, что они не отражают фактический размер всего в папках, потому что, когда я щелкаю правой кнопкой мыши и выбираю «Свойства», папки (все они имеют размер только в килобайтах) в сумме превышают 100 Гб.

Вопросы

  • Почему Thunar, как и командная строка в 12.04 и 14.04, показывает размеры папок, как 4K? Что означает это число?
  • Есть ли способ вместо этого показать составной размер, то есть вычисленный рекурсивный размер папки и всего содержимого в терминале, Thunar или любом другом файловом менеджере? (NB: я не ищу решение сценария оболочки).
6
задан 12 February 2014 в 20:29

2 ответа

Я должен немного объяснить структуру файловой системы Linux, чтобы объяснить это. Большинство файловых систем Linux делают что-то похожее, но я предполагаю, что ext4 - это текущее значение по умолчанию.

File System Structure

  • inode - это основной блок, который файловая система понимает как логическую единицу.
  • Inode каталога содержит ссылки на другие inodes.
  • Inode файла содержит метаданные, фактические данные и ссылки на блоки продолжения, в случае, если файл должен был храниться в несопоставимом виде.

Links

  • Ext4 поддерживает два вида ссылок. Жесткая и мягкая
  • Жесткая ссылка - это прямая ссылка на инод. Каждый файл имеет не менее одной жесткой ссылки из каталога, к которому он принадлежит.
  • Поскольку каталог - это просто инод, с информацией о группе инодных ссылок, он может ссылаться как на себя, так и на родителя. Другими словами, папка может быть как дочерней, так и родительской для одной и той же папки.

Хорошо, это может сбить с толку. Позвольте мне объяснить. Предположим, что у вас есть три папки, A,B,C следующим образом

C is in B.  
B is in A.

Теперь, самое интересное, C может указывать на тот же самый inode, что и A, создавая то, что иногда называют круговым циклом ссылок. Если вы попробуете сделать перезапись, вы столкнетесь с бесконечным циклом.

  • Софт-ссылки - это обычные файлы, которые записывают путь каталога к своему целевому местоположению. Они просто помечены на файловой системе, что вместо строки текста, они должны быть интерпретированы как ссылка на какое-то другое место. Nautilus, например, создает мягкие ссылки, когда Вы используете его опции 'Create link' /'Link here'.

Ну и что?

Следовательно, попытка вычислить размеры рекурсивно имеет свои причуды. Плохая идея - пытаться вычислить размеры рекурсивно по умолчанию. Однако, диалоги свойств всех приличных файловых менеджеров, которые я знаю, показывают рекурсивно рассчитанные общие размеры, потому что именно этого ожидает обычный пользователь.

Windows не имеет проблем?

На самом деле, Windows использует другой формат файловой системы, называемый NTFS, который поддерживает список всех файлов и их размер. Поэтому он всегда может легко определить общий размер.

Тогда почему бы нам не использовать NTFS?

Он не поддерживает Unix-понятие разрешений (rwx для владельца, группы и вселенной по отдельности), и эта единственная причина делает его непригодным для использования в качестве файловой системы Linux. Ext4 многое говорит о том, что это незначительное неудобство не имеет значения для многих.

Хорошо. Дайте мне нужный размер.

Вы пробовали du?

Как работает du?

du означает использование диска. На самом деле она подсчитывает кодовые блоки, не допуская их двойного подсчета. Суммируйте размеры и получите общий размер.

TL;DR

Используйте du -hs <имя папки>, чтобы найти фактический размер папки на диске. Для получения дополнительной информации прочтите man du.

8
ответ дан 12 February 2014 в 20:29

В верхнем меню thunar выберите «Правка»> «Настроить настраиваемые действия», добавьте новое настраиваемое действие с помощью:

  1. Базовая вкладка: любое имя [напр. Папка (и) - Размер файлов], Команда du -h -c% N | grep total | zenity --text-info или du -chs% N | zenity --text-info для выбранной папки или / и размера файла, за которым следует общий размер.
  2. Условия появления Вкладка : установите все флажки.

Я нашел это решение на http://crunchbang.org

4
ответ дан 12 February 2014 в 20:29

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

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