我有一个通过MTP与计算机连接的Android手机。这很好用;我可以使用Nautilus查看和传输文件。但是,我经常想使用终端来移动大量文件,而且似乎无法在文件系统树中的任何位置找到该设备。 Nautilus报告该位置为mtp://[usb:003,007]/,但不在/media/mnt之下。

有人知道它在哪里吗?

评论

Nemo中mtp设备的显示“ cd”可访问路径的可能重复项

2019:以下答案均无效。 Ubuntu 19.04

在debian上,我安装了gvfs-daemons软件包并重新启动,现在可以使用了。

#1 楼

如您所知,挂载点位于/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.


正如您已经注意到的,Nautilus还通过工具提示提供了此信息。您会发现例如的编码形式mtp://[usb:002,025](或/run/user/$USER/gvfs)中的/var/run/user/$UID/gvfs作为mtp:host=%5Busb%3A002%2C025%5D


编辑器:这似乎要求libmtp和/或gvfs的版本高于13.04中的默认版本。运行sudo add-apt-repository ppa:langdalepl/gvfs-mtp并进行更新,然后再执行其他操作。


编辑:saucy / 13.10和更高版本中不再需要PPA,文件名在终端中列出,就像在Nautilus中一样。

编辑2016-01-11:由于缺少维护和改进的时间,我删除了此答案中先前包含的脚本。您仍然可以在修订历史记录中找到它。

评论


谢谢您的回答。不幸的是,它不起作用,因为实际的文件夹名称(例如/ DCIM / Camera /)仅在Nautilus中可见,而在终端中不可见。因此,rsync无法访问$ Path / DCIM / Camera。

–贝斯曼
2013年9月8日14:16在

该路径仅是示例,对于Android手机而言则不同。还必须通过锁定屏幕将手机解锁,以允许访问数据。

– LiveWireBT
2013年9月8日15:37

路径/ DCIM / Camera /在我的手机上存在,但在终端中称为/ 2404/2407 /。那就是问题所在。如果我进入/ 2404/2407 /并运行nautilus。,那么/ DCIM / Camera /将打开。手机已解锁,否则我将无法通过Nautilus访问手机,对吗?

–贝斯曼
2013年9月8日17:37



请注意,为了使所有这些正常工作,您需要安装gvfs-fuse软件包。并非默认情况下所有版本的Ubuntu都支持它(例如Ubuntu MATE 14.10没有)。没有它,MTP设备将不会作为本地路径挂载,并且只能由支持gvfs URI的应用程序使用。

–user149408
2014年11月7日15:24

我最终找到了gvfs /目录。但是,此计算机上的路径不是$ USER,而是:/ run / user / 1000 / gvfs / mtp:host =%5Busb%3A003%2C003%5D-对于其他用户,我建议您戳一下,如果不这样做立即找到它。

–将
17 Mar 3 '17 at 21:25



#2 楼

可以在以下位置访问我的Nexus设备的内存:

/run/user/$UID/gvfs/mtp*


因此,如果您的$ UID是1000,则可以通过执行

$ cd /run/user/$UID/gvfs/mtp*
来找到它。

或(对于示例中假设您的UID为1000的确切位置),

$ cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/


评论


这是可以接受的答案,因为它不需要安装任何其他软件。非常感谢user2529583!

– NH。
17年1月18日在0:45

是否可以将mtp *文件名重命名以在Wine应用程序中使用?天真的MV给了我MV:无法将“ mtp:host =%5Busb%3A001%2C065%5D”移动到“ mtp”:没有这样的文件或目录(请注意文件名是制表符完成的)

– Mark Jeronimus
17年11月10日在12:32



@Mark任何字符在Linux中都是有效的文件名。看看是否有一种方法可以不使用mv重命名它。

–巴本·瓦尔达扬(Babken Vardanyan)
17年10月10日在12:35

太棒了它运行得非常好,为我节省了很多关于Raspbian Wheezy和Jessie的“尝试”

– Zimano
17/12/18在10:15



Ubuntu 16.04和Honor 9 Lite。连接电话后,/ run / user / 1000 / gvfs文件夹为空。

–LRDPRDX
18-09-15在6:35

#3 楼

MTP安装的设备通常可以在以下位置找到:/run/user/1000/gvfs/


例如,如果Nautilus地址栏显示mtp://[usb:001,006]/,则可以通过以下方式访问:

/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/


现在可以在终端上复制文件或文件夹:


cd进入文件夹-> cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/

,然后将所需的文件夹复制到当前目录-> cp -r ~/videos/ .



评论


它的工作原理与您说的完全一样。但是当我输入“ ls -a”时,它为空。

–cvr
17/09/20 '16:12

#4 楼

我有LG2手机,正在运行Xubuntu 15.10。

这是将设备安装到用户下mnt目录中的方法。




首先请确保您已在系统中安装以下软件包。

sudo apt-get install jmtpfs mtp-tools



将手机连接为MTP设备,然后在终端中键入以下命令。

mtp-detect


取消注释文件user_allow_other中的/etc/fuse.conf

在主目录中创建目录mnt

mkdir mnt



安装设备。

jmtpfs ~/mnt


就这样。现在,您的设备已安装在步骤4中创建的mnt目录下。

注意:可能有些步骤是不必要的。但是遵循上述步骤对我有用。

参考:https://wiki.archlinux.org/index.php/MTP

#5 楼

它适用于:


Linux Mint 17.3
三星Galaxy S5

请尝试以下操作:


apt-get install mtpfs

apt-get install mtp-tools



#是的可能是一行(这是可选的)


sudo mkdir -p /media/mtp/phone

sudo chmod 775 /media/mtp/phone



#我个人将权限限制为NO-eXecute


#在这点我不确定要安装什么。


拔出手机的微型USB和插件,然后...
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



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


列出我的Android手机上对SD卡的访问权限。 “播放列表”是一个名为“ / Playlists”的虚拟目录,其中包含您的播放列表为.m3u文件。 (根据man mtpfs

这似乎可以解决问题。记住有用的命令...



sudo mtpfs -h ...列出了设备的选项。这似乎仅在安装设备之前起作用。因此,请先检查一下。

mtp-detect ...显示了有关该设备的许多内容(mtp-tools的一部分)。

此外,我认为您需要手机/设备“打开”,请打开屏幕保护程序(如果有),以便设备可以连接。

我注意到我的USB-s挂载为:


/ media / will / usbdrive


因此,在您的用户名下挂载而不是“ mtp”存根会更有意义。另外,请阅读以下文章:“在Ubuntu上安装MTP Androids SD卡”,其中有一些有用的建议和其他内容。

参考文献

我从这些中带了头两篇文章:


在Ubuntu上安装MTP Androids SD卡
如何将MTP设备安装为驱动器
http://libmtp.sourceforge.net


评论


嗨,尽管这行得通,但我仍然发现MTP太慢,并且经常好像我的Linux PC已锁定。我支持有关使用FTP的更多评论。我做了一些挖掘工作,并推荐了sshelper应用程序。它非常有用,开源且成熟。适用于Windows,Linux和Mac-或任何支持SSH的东西。也易于使用。搏一搏。

–将
17-09-21在7:54



#6 楼

键入mount。这将列出每个活动的文件系统。

评论


否,该设备不会显示在输出中。

– LiveWireBT
2013年9月6日在22:54

嗯这种工作。我在/ run / user / myusername / gvfs /下找到了它。但是,所有文件夹名称都只是数字,而不是我在Nautilus中看到的实际名称。这样,它并不能真正解决我的问题,因为我仍然无法轻松地使用终端将文件移至设备。

–贝斯曼
2013年9月7日7:21



当Nautilus打开MTP设备时,请使用命令lsof -c nautilus |列出Nautilus已打开的所有文件。

–沃尔丁纳
2014年2月3日,19:13

那为我解决了:)

–马拉
2015年4月10日在10:28

#7 楼

我不知道通过终端遍历到MTP位置。但是,我发现我们可以右键单击内部存储/ SD卡,然后选择“在终端中打开”选项。这样做可以在终端中直接打开该位置。



评论


(内部帧缓冲区的)真实屏幕截图比屏幕(使用外部相机)的照片要好得多。

–大卫·福斯特(David Foerster)
18年4月19日在23:19

找到该路径后,我们可以将不变部分作为书签添加到文件管理器的左侧面板中,例如/ run / user / 1000 / gvfs。

–cipricus
20-4-10在14:42



#8 楼

这不是直接解决问题的方法,而是解决方案。

在遇到USB连接不一致的问题后,我绕开了.gvfs和USB系统。

我在android和voila上安装了一个简单的ftp服务器!从Nautilus / nemo / thunar连接到服务器(使用登录名可以使用ftp,也可以不使用ftp,取决于您选择的方式),然后就可以使用了。

文件夹的同步通过OwnCloud和/或BitTorrentSync处理。

无线FTP传输比USB连接更快。

#9 楼

MTP是一种协议,非常类似于FTP或SSH。当用户要求时,它将获取文件。因此,计算机上没有已安装的文件系统。

使用mtpfs使其看起来像已安装的文件系统。

mtpfs <a_folder_to_mount>


无需指定设备。如果仅连接一台设备,则没有歧义。我尚未在连接到计算机的多个设备上进行过测试。

#10 楼



按照此处所说的访问正确的路径和其他答案后,一个好主意是将不变路径(例如/run/user/1000/gvfs)作为书签添加到文件管理器左面板。当电话断开连接时,该文件夹将为空。

我注意到,以这种方式访问​​的文件可用的选项与以“普通”访问的同一文件可用的选项之间存在差异。通过mtp://路径(单击“ mtp”或左侧面板上的设备名称/编号):通过/run/user/.../gvfs访问时,文件在上下文菜单(“打开方式”)中具有所有预期的选项;当mtp://访问文件时,这些选项受到限制(减少为默认值/原始选项)。另外,某些程序(例如MKVToolNix)无法通过mtp://路径访问文件,但可以通过另一路径访问文件。在某些情况下,这方面可能变得很重要,例如,当需要在手机上创建/下载文件,通过计算机程序(例如MKVToolNix)对其进行处理并将其输出到外部设备时。

#11 楼

我可以使用gvfs-*命令(例如gvfs-cpgvfs-move等)在连接MTP的Android设备上管理文件,以下Wikipedia文章中也提到了这些命令:GVfs。

我编写了一个简单的CLI用于与Android设备进行文件同步的实用程序:https://github.com/DusanMadar/PySyncDroid

评论


只需转到目录并使用rsync

–埃文·卡洛尔(Evan Carroll)
16年6月21日在20:53

#12 楼

在最近的几天里,我的MTP连接再次缓慢地致命。我仍然在18.04上,还不能升级到20.04(我在需要18.04的设备上工作)。
首先遇到问题,我能够找到带有括号的文件并将其删除文件,一切恢复正常。到现在。我确实需要快速访问我的图片,因为我在工作中使用了该功能,因此我进一步看了一下...发现启动板错误报告中提供了预期的修复程序。
这是一个修复它的特定条目的副本:

我刚刚尝试从此处在18.04上安装libmtp-1.1.17-2:
https://launchpad.net/ubuntu/ + source / libmtp / 1.1.17-2 / + build / 18694144
文件:

libmtp-common_1.1.17-2_all.deb
libmtp-runtime_1.1.17-2_amd64。 deb
libmtp9_1.1.17-2_amd64.deb
(断开电话并在安装后注销并重新登录系统或重新启动以加载新库)
现在列出文件既快捷又我实际上可以传输文件。


以下是我运行的命令:
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp-common_1.1.17-2_all.deb
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp-runtime_1.1.17-2_amd64.deb
wget https://launchpad.net/ubuntu/+source/libmtp/1.1.17-2/+build/18694144/+files/libmtp9_1.1.17-2_amd64.deb
sudo dpkg -i libmtp9_1.1.17-2_amd64.deb libmtp-common_1.1.17-2_all.deb libmtp-runtime_1.1.17-2_amd64.deb

就我而言,无论如何我都必须重新启动,所以重新启动了。但是正如启动板上的海报所述,您至少应该注销并从X11会话重新登录。然后,我拍了几张照片,照常重新连接了电话,并立即连接并按预期工作。连接与gvfs文件系统的可用性之间没有暂停。
注意:这些文件适用于Focal Fossa(20.04),但您可以安全地将它们安装在Bionic Beaver(18.04)上并且可以使用。不过,如果他们进行升级以解决18.04中的问题,那就太好了。哦...