Answers:
正如你已经发现,挂载点是/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还通过工具提示提供了此信息。您会mtp://[usb:002,025]
在/run/user/$USER/gvfs
(或/var/run/user/$UID/gvfs
)中找到例如的编码形式mtp:host=%5Busb%3A002%2C025%5D
Asker的编辑:这似乎需要比13.04中的默认默认版本更高的libmtp和/或gvfs版本。sudo add-apt-repository ppa:langdalepl/gvfs-mtp
在执行其他操作之前,请运行并更新。
编辑:saucy / 13.10和更高版本中不再需要PPA,因为在Nautilus中,文件名在终端中列出。
编辑2016年1月11日:由于缺乏维护和改进的时间,我删除了此答案中先前包含的脚本。您仍然可以在修订历史记录中找到它。
/DCIM/Camera/
存在于我的手机上,但在终端中称为/2404/2407/
。那就是问题所在。如果我cd
进入/2404/2407/
运行nautilus .
,则/DCIM/Camera/
打开。手机已解锁,否则我将无法通过Nautilus访问手机,对吗?
gvfs-fuse
安装该软件包。默认情况下,并非所有版本的Ubuntu都具有它(例如,Ubuntu MATE 14.10没有)。没有它,MTP设备将不会作为本地路径挂载,并且只能由支持gvfs URI的应用程序使用。
gvfs/
终于找到了目录。但是,在此PC上的路径不是$ USER,而是:/run/user/1000/gvfs/mtp:host=%5Busb%3A003%2C003%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*
可以重命名文件名以在Wine应用程序中使用?天真mv
给我mv: cannot move 'mtp:host=%5Busb%3A001%2C065%5D' to 'mtp': No such file or directory
(请注意文件名是制表符完成的)
/run/user/1000/gvfs
文件夹为空。
MTP
安装的设备通常可以在以下位置找到: /run/user/1000/gvfs/
例如,如果您的Nautilus地址栏显示mtp://[usb:001,006]/
,则可以通过以下方式访问:
/run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
现在在终端上,您可以复制文件或文件夹:
cd /run/user/1000/gvfs/mtp\:host=%5Busb%3A001%2C006%5D/
cp -r ~/videos/ .
输入mount
。这将列出每个活动的文件系统。
lsof -c nautilus | less
列出Nautilus打开的所有文件文件。
这适用于:
尝试这个:
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
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挂载为:
因此,将其挂载在您的用户名下而不是“ mtp”存根可能更有意义。此外,还查看了帖子:“ 在Ubuntu上安装你的机器人会MTP SD卡 ”,它有一些有用的建议和临时演员。
我从这两篇文章中担任领导:
我有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
而已。现在,您的设备已安装mnt
在步骤4中创建的目录下。
注意:可能有些步骤是不必要的。但是,按照上述步骤为我工作。
我能够使用MTP连接Android设备上管理文件的gvfs-*
命令(例如gvfs-cp
,gvfs-move
......),它们通过下面还提到维基百科的文章:GVFS。
我编写了一个简单的CLI实用程序,用于与Android设备进行文件同步:https://github.com/DusanMadar/PySyncDroid