gio
shell 命令取代了用于在 Gnome 系统上处理本地和远程文件的gvfs-
套件,在 Gvfs 后端上使用 Gio。在大多数情况下,它非常有效,但我很难理解它用于检查thumbnail
命名空间中的布尔属性的工具。
gio info $URI
将显示支持的文件 URI 或本地文件路径的所有属性。gio info -a $selection $URI
允许查询属性名称空间或单个属性。大多数情况下效果很好:
% gio info -a access test.png
uri: file:///var/tmp/test.png
attributes:
access::can-read: TRUE
access::can-write: TRUE
access::can-execute: FALSE
access::can-delete: TRUE
access::can-trash: FALSE
access::can-rename: TRUE
% gio info -a thumbnail test.png
uri: file:///var/tmp/test.png
attributes:
thumbnail::path: /home/ferd/.cache/thumbnails/large/0953b0d1f71f9066deee9ac3fb72243b.png
thumbnail::is-valid: TRUE
但是,如果我尝试查询单个属性,一旦进入缩略图空间,事情就会变得不稳定:
% gio info -a access::can-read test.png
uri: file:///var/tmp/test.png
attributes:
access::can-read: TRUE
% gio info -a thumbnail::path test.png
uri: file:///var/tmp/test.png
attributes:
thumbnail::path: /home/ferd/.cache/thumbnails/large/0953b0d1f71f9066deee9ac3fb72243b.png
% gio info -a thumbnail::is-valid test.png
uri: file:///var/tmp/test.png
attributes:
% gio info -a thumbnail::failed test.png
uri: file:///var/tmp/test.png
attributes:
这里发生了什么?为什么我不能像thumbnail::is-valid
或thumbnail::failed
单独查询属性?无论我做什么,gio info
总是不产生任何属性输出,无论值是TRUE
,FALSE
还是属性完全不存在,这使得很难确定它是哪一个。
(显然我可以查询-a thumbnail
和解析输出,这个问题更多的是关于 的混淆行为,而gio
不是关于如何提取有问题的值。)
我目前在一台 Fedora 26 机器上使用 Gnome 3.24.3和/usr/bin/gio
. glib2-2.52.3-2.fc26.x86_64
文件系统是,并且文件的行为与这些示例ext4
中的文件完全相同。/home/ferd/Pictures
/var/tmp/
更新
根据 Sebastian 的建议,提交为gnome bug #791325。
这实际上不是
gio
命令的问题,而是该属性的生成方式。生成属性的代码位于glib/gio/glocalfileinfo.c
. 此行负责您所看到的行为。它会导致is-valid
仅在查询也包含路径时才生成属性。我不知道这是不是故意的,因为缩略图的有效性与其路径有关,或者这只是一个错误。您可以提交错误报告并提请开发人员注意。