如何訪問已安裝在 Nautilus 中的網路文件系統?
我通過點擊 Nautilus 左側的圖示在 GNOME 中安裝了一個網路文件系統。但是,當我使用終端時,我不知道如何訪問該文件系統。是否可以?
Nautilus 使用 GVFS 掛載網路文件系統。與其前身 GnomeVFS 不同,GVFS 包含一個 FUSE 橋接器,因此非 GVFS 感知應用程序仍然可以訪問 GVFS 數據。
這意味著有兩種方法可以做到這一點:使用 FUSE 橋,或使用本機 GVFS 工具。
使用 FUSE 橋接器
據了解
man gvfsd-fuse
,GVFS 守護程序將在$XDG_RUNTIME_DIR/gvfs
或處掛載網橋$HOME/.gvfs
。您應該先辦理登機手續$HOME/.gvfs
。$ ls ~/.gvfs
如果它在那裡,那就太好了。您所有聯網的、掛載 Nautilus 的文件系統都應顯示為子目錄。
但是,在我的系統(Arch GNU/Linux,GNOME 3.10)上,該目錄不存在。因此,您需要查看
$XDG_RUNTIME_DIR/gvfs
. 在我的系統上,這最終是/run/user/$UID/gvfs
,$UID
您的使用者 ID 在哪裡。如上所述,您的掛載將是該目錄的子目錄。您可以使用普通工具,如ls
、cat
、$EDITOR
等來處理這些子目錄的內容。使用本機 GVFS 工具
GVFS 提供了
gvfs-*
一系列工具來與 GVFS 進行本地互動。例如,gvfs-cat
就像正常cat
的,但它是 GVFS 感知的。所有網路掛載都在特殊的 GVFS
computer:///
位置中引用。我們需要得到他們參考的東西。$ gvfs-tree computer:/// computer:/// |-- APPLE SD Card Reader.drive |-- HL-DT-STDVDRW GA32N.drive -> burn:/// |-- ST31000528AS.drive -> file:///run/media/alex/Macintosh%20HD |-- root.link -> file:/// `-- strugee@my.owndrive.com.volume -> davs://strugee@my.owndrive.com/remote.php/webdav
在這個清單中,您可以看到我的 SD 卡讀卡器、我的光碟機、我內部驅動器上的不同分區(已掛載)、文件系統根目錄的表示,最後是我們感興趣的聯網文件系統(一個 OwnCloud 帳戶)。請注意,此命令指示連結。
現在我們有了網路文件系統的地址,我們可以使用 GVFS 工具來查看它。例如,讓我們列出我的 OwnCloud 的內容。
$ gvfs-ls davs://strugee@my.owndrive.com/remote.php/webdav Introduction to Arch Linux.odp
看起來我那裡沒有太多。讓我們創建一個新文件。現在,GVFS 沒有類似的工具
touch
,但它確實有一個保存文件的工具。我們可以只保存一個空文件。$ gvfs-save davs://strugee@my.owndrive.com/remote.php/webdav/foobar.txt
gvfs-save
會等你輸入一些東西。由於我們實際上並不希望此文件中有任何內容,因此點擊Ctrl
-D
保存。現在我們可以使用它的預設處理程序打開這個文件。
$ gvfs-open davs://strugee@my.owndrive.com/remote.php/webdav/foobar.txt
值得注意的是,如果您不給它一個文件副檔名,該文件將無法打開。這是因為
gvfs-open
會拋出一個關於不知道應該使用哪個應用程序來處理文件的錯誤。(如果您犯了這個錯誤,請使用 . 修復它gvfs-move
。)您可以使用簡單的
ls
.$ ls /usr/bin/gvfs-*