问题描述
我有一部通过MTP与我的电脑连接的Android手机。这工作正常;我可以看到Nautilus并传输文件。但是,我经常想使用终端来移动大量文件,而且我似乎无法在文件系统树中的任何位置找到设备。 Nautilus报告位置为mtp://[usb:003,007]/
,但不在/media
或/mnt
下。
有谁知道它在哪里?
最佳解决办法
Asker的编辑:这似乎需要比13.04版默认可用的更新版本的libmtp和/或gvfs。在做其他事情之前运行sudo add-apt-repository ppa:langdalepl/gvfs-mtp
并更新。
编辑:PPA不再需要/13.10和更新,文件名在终端列出,因为它们在 nautilus 。
编辑2016-01-11:由于缺乏维护和改进时间,我删除了以前包含在此答案中的脚本。您仍然可以在修订历史中找到它。
由于您已经拥有found out,所以安装点位于/run/user/$USER/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
次佳解决办法
我的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
-
#
是可以是一行(这是可选的)
-
-
sudo mkdir -p /media/mtp/phone
-
sudo chmod 775 /media/mtp/phone
-
#
个人而言,我会将权限限制为NO-eXecute -
#
在这一点上我不确定什么是足够安装。
-
-
拔下手机micro-USB和plug-in,然后……
-
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-card的访问权限。 “Playlists”是一个名为”/Playlists”的虚拟目录,它包含您的播放列表为.m3u文件。 (根据man mtpfs
)
这似乎是诀窍。有用的命令记住…
-
sudo mtpfs -h
…列出设备的选项。这似乎只在您安装设备之前工作。所以检查first-off,也许。 -
mtp-detect
…显示了很多关于该设备的内容(mtp-tools的一部分)。
另外,我认为您需要电话/设备”on”,如果您有一台设备可以连接,请打开screen-saver。
我注意到我的USB-s安装为:
-
/媒体/会/U盘U盘
因此,在您的用户名下而不是”mtp”存根上安装可能更有意义。还请查看帖子:“Mounting Your MTP Androids SD-card on Ubuntu”,它有一些有用的建议和附加内容。
引用:
我从这两个帖子中取得了领先地位:
第六种办法
我买了一部LG2手机,并运行Xubuntu 15.10。
这就是我如何将设备挂载到我的用户下的mnt目录。
-
首先确保您的系统中安装了以下软件包。
sudo apt-get install jmtpfs mtp-tools
-
将手机连接为MTP设备,然后在终端中键入以下命令。
mtp-detect
-
在文件
/etc/fuse.conf
中取消注释user_allow_other
。 -
在您的主目录中创建一个目录
mnt
。mkdir mnt
-
安装设备。
jmtpfs ~/mnt
-
而已。现在,您的设备安装在步骤4中创建的
mnt
目录下。
注意:可能有一些不必要的步骤。但遵循上述步骤为我工作。
参考:https://wiki.archlinux.org/index.php/MTP
第七种办法
这不是对问题的直接回答,而是一个解决方案。
在遇到USB连接不一致之后,我一起绕过了.gvfs和USB系统。
我在android和voila上安装了一个简单的ftp服务器!从Nautilus /nemo /thunar连接到服务器(无论是登录还是不登录,取决于你的选择)并离开你。
通过OwnCloud和/或BitTorrentSync处理文件夹的同步。
而通过无线的FTP比USB连接快得多。
第八种办法
MTP是一种协议,很像FTP或SSH。它在用户请求时提取文件。因此计算机上没有安装的文件系统。
使用mtpfs为了使它看起来像一个安装的文件系统。
mtpfs <a_folder_to_mount>
无需指定设备。如果你只有一个设备连接,那么就没有歧义。我没有通过连接到电脑的多台设备对其进行测试。