通过MTP协议用gvfs挂载android手机

本文介绍了如何在Ubuntu系统中,利用gvfs-mtp工具通过MTP协议挂载Android手机。当安装好gvfs-mtp后,虽然Nautilus可以显示手机内容,但挂载位置不明确。实际上,手机被挂载在/run/user/<USERID>/gvfs目录下,其中<USERID>可通过df命令查询。此外,文中还提供了在命令行使用lsusb和gvfs-mount命令手动挂载手机的方法。

如果你安装好了gvfs-mtp,使用nautilus可以直接打开,但它究竟挂载在了哪里呢?

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命令挂载。

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值