如何使用 gio 命令查詢單個縮略圖命名空間屬性?
gio
shell 命令取代了在 Gnome 系統上使用 Gio over Gvfs 後端處理本地和遠端文件的gvfs-
套件。在大多數情況下,它非常有效,但我很難理解它用於檢查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
當查詢也包含路徑時,才會生成屬性。我不知道這是否是故意的,因為縮略圖的有效性與其路徑有關,或者這只是錯誤。您可以送出錯誤報告並提請開發人員注意。