位于文件系统中的MTP安装设备在哪里?

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

有谁知道它在哪里?

正如您已经发现的那样 ,挂载点位于/run/user/$USER/gvfs/ (或/var/run/user/$UID/gvfs )中,并以它们使用的协议,连接类型和地址命名。 这使得事情变得更加困难,因为每次重新插入设备时连接地址都可能会改变,即使它是相同的端口。 如果你有两次相同的设备,它会变得更糟。

您可以使用lsusb从终端显示所有连接的USB设备:

 $ lsusb | grep Google # Note: This is a Nexus 4 Bus 002 Device 025: ID 18d1:4ee2 Google Inc. 

如您所知,Nautilus也通过工具提示提供此信息。 您将在/run/user/$USER/gvfs (或/var/run/user/$UID/gvfs )中找到例如mtp://[usb:002,025]的编码格式为mtp:host=%5Busb%3A002%2C025%5D


Asker的编辑:这似乎需要更新版本的libmtp和/或gvfs,而不是13.04中的默认版本。 运行sudo add-apt-repository ppa:langdalepl/gvfs-mtp并在执行任何其他操作之前进行更新。


编辑:在saucy / 13.10中不再需要PPA和更新,文件名列在终端中,因为它们在Nautilus中。

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

我的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/ 

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/ .

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

这适用于:

  • Linux Mint 17.3
  • 三星Galaxy S5

试试这个:

  1. apt-get install mtpfs
  2. apt-get install mtp-tools
    • #yes可以是一行(这是可选的
  3. sudo mkdir -p /media/mtp/phone
  4. sudo chmod 775 /media/mtp/phone
    • #我个人限制NO-eXecute的权限
    • #此时我不确定什么足以装载。
  5. 拔掉手机micro-USB和插件,然后……
  6. sudo mtpfs -o allow_other /media/mtp/phone
  7. 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 
  1. 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卡的访问权限。 “ 播放列表 ”是一个名为“/播放列表 ”的虚拟目录,其中包含播放列表作为.m3u文件。 (按man mtpfs

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

  • sudo mtpfs -h …列出设备的选项。 这似乎仅在您安装设备之前有效。 所以也许首先检查一下。
  • mtp-detect …显示了很多关于设备的东西 (mtp-tools的一部分)。

此外,我认为你需要打开手机/设备,如果你有一个屏幕保护程序,打开屏幕保护程序,以便设备可以连接。

我注意到我的USB-s安装为:

  • / media / will / usbdrive

因此,在您的用户名而不是“mtp”存根下安装更有意义。 还要查看post:“ 在Ubuntu上安装你的MTP机器人SD卡 ”,它有一些有用的建议和附加function。

引用:

我从这两个post中取得了领先优势:

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

在经历了USB连接的不一致之后,我一起绕过了.gvfs和USB系统。

我在android上安装了一个简单的ftp服务器,瞧! 从Nautilus / nemo / thunar连接到服务器(登录或不登录,取决于您的选择),然后离开。

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

FTP over wireless比USB连接快得多。

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

这就是我将设备挂载到我的用户下的mnt目录的方法。

  1. 首先确保您的系统中安装了以下软件包。

     sudo apt-get install jmtpfs mtp-tools 
  2. 将手机连接为MTP设备,然后在终端中键入以下命令。

     mtp-detect 
  3. 在文件/etc/fuse.conf取消注释/etc/fuse.conf

  4. 在主目录中创建目录mnt

     mkdir mnt 
  5. 安装设备。

     jmtpfs ~/mnt 
  6. 而已。 现在,您的设备安装在步骤4中创建的mnt目录下。

注意:可能有一些步骤是不必要的。 但按照上述步骤为我工作。

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

MTP是一种协议,很像FTP或SSH。 它在用户请求时获取文件。 因此,计算机上没有安装的文件系统。

使用mtpfs使其看起来像挂载的文件系统。

 mtpfs  

无需指定设备。 如果您只连接了一个设备,则没有歧义。 我还没有连接到我的计算机的多个设备测试它。

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

我能够使用gvfs-*命令(例如gvfs-cpgvfs-move ,…)在MTP连接的Android设备上管理文件,这些文章也在以下维基百科文章中提到: GVfs 。

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