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

Согласно wikipedia, Ubuntu по большей части является лицензированным GPL: Единственными исключениями являются некоторые проприетарные аппаратные драйверы. [24] Основной лицензией является GNU General Public License (GNU GPL), которая вместе с GNU Lesser General Public License (GNU LGPL) прямо заявляет, что пользователи могут свободно запускать, копировать, распространять, изучать, изменять, разрабатывать и совершенствовать программного обеспечения. С другой стороны, есть также проприетарное программное обеспечение, которое может работать на Ubuntu.

Источник: http://en.wikipedia.org/wiki/Ubuntu_(operating_system)#Features

Существуют определенные пакеты, которые не включены (например, ограниченные драйверы), которые предоставляют

На официальном http://en.wikipedia.org/wiki/Ubuntu_ (operating_system) #Features вы также можете найти более подробную информацию по этой теме.

Он также явно указывает, что существует 4 типа лицензий, предлагаемых в пакетах ubuntu:

Единственными исключениями являются некоторые проприетарные аппаратные драйверы. [24] Основной лицензией является GNU General Public License (GNU GPL), которая вместе с GNU Lesser General Public License (GNU LGPL) прямо заявляет, что пользователи могут свободно запускать, копировать, распространять, изучать, изменять, разрабатывать и совершенствовать программного обеспечения. С другой стороны, есть также запатентованное программное обеспечение, которое может работать на Ubuntu.

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

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

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