Gnome3

如何使用 gio 命令查詢單個縮略圖命名空間屬性?

  • December 6, 2017

gioshell 命令取代了在 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-validthumbnail::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當查詢也包含路徑時,才會生成屬性。我不知道這是否是故意的,因為縮略圖的有效性與其路徑有關,或者這只是錯誤。您可以送出錯誤報告並提請開發人員注意。

引用自:https://unix.stackexchange.com/questions/409086