В Nautilus, Свойства одного элемента показывают размер как:
значение , округленное до одного десятичного знака ... nn.n КБ, МБ, ГБ ...
с последующим точным количеством байтов
Для не единичных элементов только наутилус имеет округленный размер .
(Single item) Size: 1.4 GB (1501773824 bytes)
(Multi items) Size: 5 items, totalling 1.4 GB
(directory) Size: 5 items, totalling 1.4 GB
Есть ли способ заставить Наутилус отображать точное количество байтов во во всех ситуациях?
Мне нравится, как диалоговое окно «Свойства» позволяет мне копировать данные этого размера, но я обычно хочу работать с точным размером (не в приближении).
Konqueror отображает сумму в реальном размере, но не позволяет скопировать значение в буфер обмена.
Примечание: Soluton zerwas при условии ( ниже ) работает хорошо, за исключением того, что он достигает целочисленного максимума 4,294967,296 байт (4 ГБ) ...
Так что для любого, кто читает это и заинтересован в использовании этого метода, вот исправленный код, который обслуживает «длинное длинное» целое число ... 9,223,372,036,854,775,807 байт (8 EB .. E xaBytes).
Первая строка (/ * new * /) находится по номеру строки 2337
/* new */ long long ll_total_size = total_size;
/* MOD */ size_str = g_format_size_for_display (ll_total_size);
/* MOD */ text = g_strdup_printf (ngettext("%'d item, with size %s (%lld bytes",
/* MOD */ "%'d items, totalling %s (%lld bytes)",
/* ASIS */ total_count),
/* MOD */ total_count, size_str, ll_total_size);
Новая отображаемая информация:
(Single item) Size: 1.4 GB (1501773824 bytes)
(Multi items) Size: 5 items, totalling 1.4 GB (1502027641 bytes)
(directory) Size: 5 items, totalling 1.4 GB (1502027641 bytes)
--
(directory) Size: 188,120 items, totalling 766.8 GB (823295045767 bytes)
Отображенное значение называет функция g_format_size_for_display Бойких. Необходимо отредактировать исходный код наутилуса для изменения этого поведения, просто добавив %i к выводу:
Шаг 1: Загрузите источник, установите зависимости и откройте файл для редактирования
mkdir -p .p/nautilus && cd .p/nautilus
sudo apt-get build-dep nautilus
apt-get source nautilus && cd nautilus*
gedit src/file-manager/fm-properties-window.c
Шаг 2: Измените код
Теперь пойдите для выравнивания 2338 (в Наутилусе 2.30) и изменение with size %s
кому: with size %s (%i Bytes)
. Сделайте то же для totalling %s
. Измените его на totalling %s (%i Bytes)
Это должно теперь быть похожим на это:
text = g_strdup_printf (ngettext("%'d item, with size %s (%i Bytes)",
"%'d items, totalling %s (%i Bytes)",
Шаг 3: скомпилировать
Теперь можно просто скомпилировать Наутилус как любое приложение
./configure --prefix=/usr
make
sudo make install
nautilus -q
Обратите внимание, что Наутилус будет перезаписан каждый раз, когда будет обновление его через управление пакетом. Это означает, что необходимо создать и установить его снова вручную.
Существует также альтернативный путь при помощи сценария Наутилуса, но это добавило бы другую запись в щелчке правой кнопкой meny вместо того, чтобы иметь значение в окне свойств.