Nautilus 属性页面是否可以显示多选和目录的大小(以字节为单位)?

Pet*_*r.O 5 nautilus file-properties

在 Nautilus 中,单个项目的属性将大小显示为:四舍五入到小数点后
一位的值...nn.n KB、MB、GB... 后跟精确的字节数

对于非单个项目,Nautilus 仅显示圆形尺寸。

(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
Run Code Online (Sandbox Code Playgroud)

有没有办法让 Nautilus 在所有情况下显示准确的字节数?

我喜欢“属性”对话框允许我复制此大小数据的方式,但我通常希望使用确切大小(不是近似值)。

Konqueror 显示实际总大小,但它不允许我将值复制到剪贴板。

注:该soluton zerwas(提供以下)工作得很好,但它达到一个整数最大的4,294967,296字节(4 GB)......
因此,对于任何人读这篇文章,有兴趣使用这种方法,这里是ammended代码,这迎合了“长长”整数...... 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);
Run Code Online (Sandbox Code Playgroud)

新显示的信息:

(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)
Run Code Online (Sandbox Code Playgroud)

zer*_*was 7

显示的值由GLib的函数g_format_size_for_display调用。您必须编辑 nautilus 的源代码才能通过在输出中添加 %i 来更改此行为:

第一步:下载源码,安装依赖,打开文件进行编辑

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
Run Code Online (Sandbox Code Playgroud)

第 2 步:更改代码

现在转到第 2338 行(在 Nautilus 2.30 中)并更改with size %swith 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)",
Run Code Online (Sandbox Code Playgroud)

第 3 步:编译

现在您可以像其他应用程序一样简单地编译 Nautilus

./configure --prefix=/usr
make
sudo make install
nautilus -q
Run Code Online (Sandbox Code Playgroud)

请注意,只要通过包管理对其进行更新,Nautilus 就会被覆盖。这意味着您必须手动构建和安装它。

还有一种使用 Nautilus 脚本的替代方法,但这会在右键单击菜单中添加另一个条目,而不是在属性窗口中添加值。