什么是/run/user/1000/gvfs/

Alw*_*ing 12 gvfs mountpoint

我将我的运动相机 (GoPro Hero 5) 连接到运行 Ubuntu 16.10 LTS 的计算机以下载文件。令我惊讶的是,我没有在/media/. find | grep DCIM从根文件夹运行发现了一个具有以下路径的文件夹,其中包含我正在寻找的视频文件:

/run/user/1000/gvfs/gphoto2:host=%5Busb%3A003%2C094%5D/DCIM/
Run Code Online (Sandbox Code Playgroud)

那么,/run/user/1000/gvfs/它的目的是什么以及有何不同/media/

Win*_*nix 12

条条大路通侏儒

Ubuntu 基于许多东西以及来自 Canonical(Ubuntu 的所有者)的本土编程。大多数人都知道它基于 Linux 内核并提供了一个“GNOME”桌面环境。但它也是基于 Debian 的,也许同样重要的 Gnome Internals。我敢在 Ubuntu 中说:“条条大路通 Gnome”,这是非常内在的。

什么是 GIO/gvfs?

在您的问题中,/run/user/1000/gvfs/gvfs组件代表“Gnome 虚拟文件系统”。您的相机和 Android 手机安装在发生正常“安装”的“内核空间”之外的“用户空间”中。

要了解有关 GIO(我猜测的 Gnome 输入输出)的更多信息,请参阅此处此处。Ubuntu 有一个关于使用 GIO 使用gvfs-mount 命令挂载设备的页面

您问题中的另一个组件/run/user/1000/gvfs//run/user组件。这是systemd为了规避使用/tmp目录而创建的,这是此类设备的常见做法,因为它绕过了网络“规则”。见这里

您问题的另一部分是它与/media?

/media目录是可移动存储所在的位置。可移动存储采用熟悉的文件格式,例如ext4,fatntfs. 设备名称和安装名称是静态的。

您的 Android 手机不仅是可移动存储,而且是具有存储功能的可移动外国操作系统。通常使用 MTP 访问存储。但是,有许多程序可以与手机进行通信。这就是为什么它进入/run/user/1000/gvfs. Samba 也进入同一个目录链,但我还没有研究过那个。

/run/user/1000目录结构中,挂载名称是动态的,并且随着每个连接而变化。例如我的手机目前是:

$ ll /run/user/1000/gvfs/mtp:host=%5Busb%3A001%2C013%5D
total 0
dr-x------ 1 rick rick 0 Dec 31  1969 ./
dr-x------ 3 rick rick 0 May  9 18:20 ../
drwx------ 1 rick rick 0 Dec 31  1969 Internal storage/
drwx------ 1 rick rick 0 Dec 31  1969 SD card/
Run Code Online (Sandbox Code Playgroud)

USB 枚举因更改而臭名昭著,因此您可以放心,下次目录名称会有所不同。/media另一方面,“东西”是静态的。

请注意 Ubuntu 16.04 在内核 4.14.34 下显示的日期。自 1969 年以来,我就没有使用过这款 Android 智能手机。我想我们可以称其为错误。