Networking

如何訪問已安裝在 Nautilus 中的網路文件系統?

  • March 10, 2014

我通過點擊 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 在哪裡。如上所述,您的掛載將是該目錄的子目錄。您可以使用普通工具,如lscat$EDITOR等來處理這些子目錄的內容。

使用本機 GVFS 工具

GVFS 提供了gvfs-*一系列工具來與 GVFS 進行本地互動。例如,gvfs-cat就像正常cat的,但它是 GVFS 感知的。

所有網路掛載都在特殊的 GVFScomputer:///位置中引用。我們需要得到他們參考的東西。

$ 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-*

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