通过MTP协议用gvfs挂载android手机
2015-09-30 00:26
555 查看
如果你安装好了gvfs-mtp,使用nautilus可以直接打开,但它究竟挂载在了哪里呢?
nautilus只会显示mtp://[usb:xxx,xxx]/,让人有点摸不着头脑,我找了很久也没找到具体的说明。
后来我在ubuntu论坛上找到了信息,原来它被挂载在了/run/user/<USERID>/gvfs下面
USERID可以用df找找看,我的是1000
在gvfs文件夹下会有类似
这是有人在回答中提供的脚本
#/bin/bash
# Find the path to MTP/PTP connected device by USB ID
find_path_by_usbid () {
lsusboutput="$(lsusb -d $1 | head -n1)"
usbbus="${lsusboutput% Device*}"
usbbus="${usbbus#Bus }"
usbdevice="${lsusboutput%%:*}"
usbdevice="${usbdevice#*Device }"
# Media Transfer Protocol
if [ -d "$XDG_RUNTIME_DIR" ]; then
runtimedir="$XDG_RUNTIME_DIR"
else
runtimedir="/run/user/$USER"
fi
MtpPath="$runtimedir/gvfs/mtp:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
# Picture Transfer Protocol
PtpPath="$runtimedir/gvfs/gphoto2:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
if [ -d "$MtpPath" ]; then
echo "$MtpPath"
elif [ -d "$PtpPath" ]; then
echo "$PtpPath"
else
echo "Error: File or directory was not found."
fi
}
# USB ID for Nexus 4
Id="18d1:4ee2"
Path="$(find_path_by_usbid $Id)"
# Backup pictures if device is connected
if [ "$Path" == "Error: File or directory was not found." ]; then
echo "$Path"
exit
else
rsync -av --progress $Path/DCIM/Camera/ ~/Pictures/Backup_Nexus4/
fi
这是回答的网址
点击打开链接
如果要在命令行中挂载可以在用lsusb查看你的手机后,使用gvfs-mount命令挂载。
nautilus只会显示mtp://[usb:xxx,xxx]/,让人有点摸不着头脑,我找了很久也没找到具体的说明。
后来我在ubuntu论坛上找到了信息,原来它被挂载在了/run/user/<USERID>/gvfs下面
USERID可以用df找找看,我的是1000
在gvfs文件夹下会有类似
mtp:host=%5Busb%3A002%2C025%5D的文件夹,那就是你手机挂载的位置
这是有人在回答中提供的脚本
#/bin/bash
# Find the path to MTP/PTP connected device by USB ID
find_path_by_usbid () {
lsusboutput="$(lsusb -d $1 | head -n1)"
usbbus="${lsusboutput% Device*}"
usbbus="${usbbus#Bus }"
usbdevice="${lsusboutput%%:*}"
usbdevice="${usbdevice#*Device }"
# Media Transfer Protocol
if [ -d "$XDG_RUNTIME_DIR" ]; then
runtimedir="$XDG_RUNTIME_DIR"
else
runtimedir="/run/user/$USER"
fi
MtpPath="$runtimedir/gvfs/mtp:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
# Picture Transfer Protocol
PtpPath="$runtimedir/gvfs/gphoto2:host=%5Busb%3A${usbbus}%2C${usbdevice}%5D"
if [ -d "$MtpPath" ]; then
echo "$MtpPath"
elif [ -d "$PtpPath" ]; then
echo "$PtpPath"
else
echo "Error: File or directory was not found."
fi
}
# USB ID for Nexus 4
Id="18d1:4ee2"
Path="$(find_path_by_usbid $Id)"
# Backup pictures if device is connected
if [ "$Path" == "Error: File or directory was not found." ]; then
echo "$Path"
exit
else
rsync -av --progress $Path/DCIM/Camera/ ~/Pictures/Backup_Nexus4/
fi
这是回答的网址
点击打开链接
如果要在命令行中挂载可以在用lsusb查看你的手机后,使用gvfs-mount命令挂载。
相关文章推荐
- 使用C++实现JNI接口需要注意的事项
- Android IPC进程间通讯机制
- Android Manifest 用法
- [转载]Activity中ConfigChanges属性的用法
- Android之获取手机上的图片和视频缩略图thumbnails
- Android之使用Http协议实现文件上传功能
- Android学习笔记(二九):嵌入浏览器
- android string.xml文件中的整型和string型代替
- i-jetty环境搭配与编译
- android之定时器AlarmManager
- android wifi 无线调试
- Android Native 绘图方法
- Android java 与 javascript互访(相互调用)的方法例子
- android 代码实现控件之间的间距
- android FragmentPagerAdapter的“标准”配置
- Android"解决"onTouch和onClick的冲突问题
- android:installLocation简析
- android searchView的关闭事件
- SourceProvider.getJniDirectories