在 Linux 桌面环境下用 ADB 快速备份手机文件

2026-06-10 21:57:00
丁国栋
原创 7
摘要:手机空间越来越大,但总有满的一天。传统的 MTP 协议在文件数量多时容易出错,GVfs 挂载又有权限问题。本文介绍如何在 Linux 桌面上使用 ADB(Android Debug Bridge)高速稳定地备份手机中的图片、视频等文件,规避 MTP 和 GVfs 的常见陷阱。

手机空间越来越大,但总有满的一天。传统的 MTP 协议在文件数量多时容易出错,GVfs 挂载又有权限问题。本文介绍如何在 Linux 桌面上使用 ADB(Android Debug Bridge)高速稳定地备份手机中的图片、视频等文件,规避 MTP 和 GVfs 的常见陷阱。


一、为什么传统备份方式不好用

备份手机文件通常有两种方式:云服务和 USB 连接电脑。

  • 云服务:空间有限,且订阅价格不低;
  • USB 线缆备份:默认走 MTP 协议,文件数量一多就容易报错、中断。

在 Linux 桌面环境下,问题还会更复杂一些。

二、MTP 与 GVfs:问题出在哪里

MTP 协议本身的局限

MTP(Media Transfer Protocol,媒体传输协议)是 USB 协议的一种,专用于设备间的文件传输。它的工作方式是先建立连接,再逐个传输文件。当文件数量达到几千甚至上万时,协议本身的稳定性就会下降,报错、断连是家常便饭。

GVfs 挂载的权限陷阱

在 GNOME 桌面(如 Ubuntu 默认桌面)中,当手机通过 USB 连接并允许电脑访问文件时,系统会通过 GVfs(GNOME Virtual file system)将手机挂载到一个特殊路径,例如:

/run/user/1000/gvfs/mtp:host=Xiaomi_Xiaomi_13_6aae7338/Internal shared storage/

这里有三个关键点:

  1. 路径属于用户会话:GVfs 运行在当前登录用户(user 1000)的会话中,/run/user/1000/ 只有该用户能访问;
  2. root 无权访问:使用 sudo cp 时,你切换到了 root 用户,root 没有当前用户会话的 GVfs 访问权限,也没有对应的环境变量(如 DBUS_SESSION_BUS_ADDRESS),因此会直接报 Permission deniedcannot stat
  3. 路径不稳定:不同手机、不同连接的挂载路径变化很大,不适合写脚本自动化。

这些都说明,对于批量、大量文件的备份需求,MTP + GVfs 这条路很难走得通。

三、解决方案:使用 ADB

ADB(Android Debug Bridge)是 Android 官方提供的调试工具,支持在电脑与 Android 设备之间传输文件。它的 pull 命令直接走 ADB 协议,不依赖 GVfs,也没有 root 权限问题,传输速度更快,文件数量再多也稳定可靠。

环境准备

1. 手机端:开启 USB 调试

打开手机"设置"→"关于手机"→ 连续点击"版本号"7 次,激活"开发者选项"。

然后在"开发者选项"中开启"USB 调试"。

2. 电脑端:安装 ADB

# Ubuntu / Debian
sudo apt install adb

3. 连接验证

用 USB 线连接手机,在手机弹出"允许 USB 调试"时点击允许,然后验证连接:

# 列出已连接的设备
adb devices

正常输出应类似:

List of devices attached
6aae7338    device

如果显示 unauthorized,说明手机端尚未确认授权,检查手机屏幕并点击"允许"。

开始备份

确认连接后,使用 adb pull 拉取文件:

adb pull /sdcard/DCIM /media/guodong/backup/phonem13/DCIM
  • /sdcard/DCIM 是手机端相册的默认路径;
  • 后半部分是你的电脑端目标路径,根据实际情况修改。

其他常用命令

adb shell          # 进入手机的 shell 环境
ls /sdcard/DCIM    # 在 shell 中查看手机文件目录

四、总结

方式 优点 缺点
云服务 方便、自动 空间小、价格贵
MTP + GVfs 免安装、即插即用 大数据量不稳定、有权限问题
ADB 高速、稳定、无权限问题 需要开启 USB 调试

如果你的手机文件数量不多(几百张以内),MTP 方式完全够用;但如果动辄上千张照片、几十个视频,ADB 是明显更可靠的选择。一次配置,长期受益。

发表评论
博客分类