bes*_*man 257 mountpoint mtp
我有一部通过 MTP 与我的计算机连接的 Android 手机。这很好用;我可以使用 Nautilus 查看和传输文件。但是,我经常想使用终端来移动大量文件,而且我似乎无法在文件系统树中的任何位置找到该设备。Nautilus 将位置报告为mtp://[usb:003,007]/
,但它不在/media
或之下/mnt
。
有谁知道它在哪里?
Liv*_*eBT 198
正如您已经发现的,挂载点位于/run/user/$USER/gvfs/
(或/var/run/user/$UID/gvfs
)中,并以其使用的协议、连接类型和地址命名。这让事情变得更加困难,因为每次重新插入设备时连接地址都可能会改变,即使它是同一个端口。如果您使用相同的设备两次,情况会更糟。
您可以使用lsusb
从终端显示所有连接的 USB 设备:
$ lsusb | grep Google # Note: This is a Nexus 4, change accordingly
Bus 002 Device 025: ID 18d1:4ee2 Google Inc.
Run Code Online (Sandbox Code Playgroud)
正如您所注意到的,Nautilus 还通过工具提示提供此信息。你会发现编码形式的 eg mtp://[usb:002,025]
in /run/user/$USER/gvfs
(or /var/run/user/$UID/gvfs
) asmtp:host=%5Busb%3A002%2C025%5D
Asker 的编辑:这似乎需要比 13.04 中默认可用的更新版本的 libmtp 和/或 gvfs。sudo add-apt-repository ppa:langdalepl/gvfs-mtp
在做任何其他事情之前运行和更新。
编辑:在 saucy/13.10 和更新版本中不再需要 PPA,文件名在终端中列出,因为它们在 Nautilus 中。
编辑 2016-01-11:由于缺乏维护和改进的时间,我删除了之前包含在此答案中的脚本。您仍然可以在修订历史记录中找到它。
小智 111
可以在以下位置访问我的 Nexus 设备的内存:
/run/user/$UID/gvfs/mtp*
Run Code Online (Sandbox Code Playgroud)
因此,如果您的 $UID 是1000
,您可以通过以下任一方式找到它
$ cd /run/user/$UID/gvfs/mtp*
Run Code Online (Sandbox Code Playgroud)
或(对于假设您的 UID 为 1000 的示例中的确切位置),
$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
Run Code Online (Sandbox Code Playgroud)
suh*_*lvs 28
MTP
安装的设备通常可以在以下位置找到: /run/user/1000/gvfs/
例如,如果您的 Nautilus 地址栏显示mtp://[usb:001,006]/
,那么您可以通过以下方式访问:
/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
Run Code Online (Sandbox Code Playgroud)
现在在终端上,您可以复制文件或文件夹:
cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
cp -r ~/videos/ .
小智 14
我有一部 LG2 手机,运行的是 Xubuntu 15.10。
这就是我将设备安装到用户下的 mnt 目录的方式。
首先确保您的系统中安装了以下软件包。
sudo apt-get install jmtpfs mtp-tools
Run Code Online (Sandbox Code Playgroud)将手机连接为 MTP 设备并在终端中键入以下命令。
mtp-detect
Run Code Online (Sandbox Code Playgroud)user_allow_other
在文件中取消注释/etc/fuse.conf
。
mnt
在您的主目录中创建一个目录。
mkdir mnt
Run Code Online (Sandbox Code Playgroud)安装设备。
jmtpfs ~/mnt
Run Code Online (Sandbox Code Playgroud)就是这样。现在您的设备安装mnt
在步骤 4 中创建的目录下。
注意:可能有些步骤是不必要的。但是按照上述步骤对我有用。
参考:https : //wiki.archlinux.org/index.php/MTP
wil*_*ill 11
这是与:
尝试这个:
apt-get install mtpfs
apt-get install mtp-tools
#
是的可以是一行(这是可选的)sudo mkdir -p /media/mtp/phone
sudo chmod 775 /media/mtp/phone
#
我个人将权限限制为NO-eXecute#
在这一点上,我不确定什么足以安装。sudo mtpfs -o allow_other /media/mtp/phone
ls -lt /media/mtp/phone
输出:
total 0
drwxrwxrwx 2 will will 0 Jan 1 1970 Card
drwxrwxrwx 2 will will 0 Jan 1 1970 Phone
drwxrwxrwx 2 will will 0 Jan 1 1970 Playlists
Run Code Online (Sandbox Code Playgroud)
ls -lt /media/mtp/phone/Card
输出:
total 0
drwxrwxrwx 2 will will 0 Jan 1 1970 Android
drwxrwxrwx 2 will will 0 Jan 1 1970 DCIM
drwxrwxrwx 2 will will 0 Jan 1 1970 LOST.DIR
drwxrwxrwx 2 will will 0 Jan 1 1970 Music
Run Code Online (Sandbox Code Playgroud)
在我的 Android 手机上列出对 SD 卡的访问权限。“播放列表”是一个名为“/播放列表”的虚拟目录,其中包含您的播放列表作为 .m3u 文件。(每man mtpfs
)
这似乎可以解决问题。要记住的有用命令...
sudo mtpfs -h
... 列出设备的选项。这似乎只在您安装设备之前有效。因此,也许首先检查一下。mtp-detect
... 展示了很多关于设备的东西(mtp-tools 的一部分)。另外,我认为您需要“打开”电话/设备,如果您有屏幕保护程序,请打开屏幕保护程序,以便设备可以连接。
我注意到我的 USB-s 挂载为:
因此,安装在您的用户名下而不是“mtp”存根下可能更有意义。另外,请查看帖子:“在 Ubuntu 上安装您的 MTP Androids SD 卡”,它有一些有用的建议和附加功能。
我从这两个帖子中起带头作用:
小智 9
我不知道究竟要通过终端穿越到 MTP 位置。但是,我发现我们可以右键单击内部存储/SD 卡并选择“在终端中打开”选项。这样做的位置直接在终端中打开。
小智 6
这不是问题的直接答案,但仍然是解决方案。
在遇到 USB 连接不一致后,我绕过了 .gvfs 和 USB 系统。
我在 android 上安装了一个简单的 ftp 服务器,瞧!从 Nautilus/nemo/thunar 连接到服务器(无论是登录还是不登录的 ftp,取决于您的选择),然后就可以了。
文件夹的同步是通过 OwnCloud 和/或 BitTorrentSync 处理的。
而且通过无线的 FTP 比 USB 连接要快得多。
小智 5
MTP 是一种协议,很像 FTP 或 SSH。它在用户要求时获取文件。因此,计算机上没有挂载的文件系统。
使用 mtpfs 使其看起来像一个已安装的文件系统。
mtpfs <a_folder_to_mount>
Run Code Online (Sandbox Code Playgroud)
无需指定设备。如果您只连接了一台设备,则没有歧义。我还没有使用连接到我的计算机的多个设备对其进行测试。
归档时间: |
|
查看次数: |
224491 次 |
最近记录: |