位于文件系统中的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
试试这个:
-
apt-get install mtpfs
-
apt-get install mtp-tools
- #yes可以是一行(这是可选的 )
-
sudo mkdir -p /media/mtp/phone
-
sudo chmod 775 /media/mtp/phone
-
#
我个人限制NO-eXecute的权限 -
#
此时我不确定什么足以装载。
-
- 拔掉手机micro-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卡的访问权限。 “ 播放列表 ”是一个名为“/播放列表 ”的虚拟目录,其中包含播放列表作为.m3u文件。 (按man mtpfs
)
这似乎可以解决问题。 有用的命令要记住……
-
sudo mtpfs -h
…列出设备的选项。 这似乎仅在您安装设备之前有效。 所以也许首先检查一下。 -
mtp-detect
…显示了很多关于设备的东西 (mtp-tools的一部分)。
此外,我认为你需要打开手机/设备,如果你有一个屏幕保护程序,打开屏幕保护程序,以便设备可以连接。
我注意到我的USB-s安装为:
- / media / will / usbdrive
因此,在您的用户名而不是“mtp”存根下安装更有意义。 还要查看post:“ 在Ubuntu上安装你的MTP机器人SD卡 ”,它有一些有用的建议和附加function。
引用:
我从这两个post中取得了领先优势:
- 在Ubuntu上安装MTP Androids SD卡
- 如何将MTP设备安装为驱动器
- http://libmtp.sourceforge.net
这不是问题的直接答案,而是解决方案。
在经历了USB连接的不一致之后,我一起绕过了.gvfs和USB系统。
我在android上安装了一个简单的ftp服务器,瞧! 从Nautilus / nemo / thunar连接到服务器(登录或不登录,取决于您的选择),然后离开。
文件夹的同步通过OwnCloud和/或BitTorrentSync处理。
FTP over wireless比USB连接快得多。
我有一部LG2手机,我正在运行Xubuntu 15.10。
这就是我将设备挂载到我的用户下的mnt目录的方法。
-
首先确保您的系统中安装了以下软件包。
sudo apt-get install jmtpfs mtp-tools
-
将手机连接为MTP设备,然后在终端中键入以下命令。
mtp-detect
-
在文件
/etc/fuse.conf
取消注释/etc/fuse.conf
。 -
在主目录中创建目录
mnt
。mkdir mnt
-
安装设备。
jmtpfs ~/mnt
-
而已。 现在,您的设备安装在步骤4中创建的
mnt
目录下。
注意:可能有一些步骤是不必要的。 但按照上述步骤为我工作。
参考: https : //wiki.archlinux.org/index.php/MTP
MTP是一种协议,很像FTP或SSH。 它在用户请求时获取文件。 因此,计算机上没有安装的文件系统。
使用mtpfs使其看起来像挂载的文件系统。
mtpfs
无需指定设备。 如果您只连接了一个设备,则没有歧义。 我还没有连接到我的计算机的多个设备测试它。
我不确切地知道通过终端到达MTP位置。 但是,我发现我们可以右键单击内部存储/ SD卡并选择“在终端中打开”选项。 这样做的位置直接在终端打开。
我能够使用gvfs-*
命令(例如gvfs-cp
, gvfs-move
,…)在MTP连接的Android设备上管理文件,这些文章也在以下维基百科文章中提到: GVfs 。
我写了一个简单的CLI实用程序,用于与Android设备进行文件同步: https : //github.com/DusanMadar/PySyncDroid