Termux 备份与换机迁移:一套不丢环境的完整方案

Termux 的所有内容都躺在 Android 应用的私有目录下,一旦卸载、清数据或更换手机,装好的 Python、配置文件与项目便灰飞烟灭。建立一套可复现的备份与迁移流程,是长期使用 Termux 的必备技能。

一、先搞懂要备份什么

Termux 里真正需要保护的核心目录只有两个:$HOME(即 ~/) 存放你的配置文件(.bashrc.vimrc)、脚本与项目代码;$PREFIX(即 usr) 则是 pkg 安装的全部软件包,体积大、却可以用清单重建,通常不必整体打包。结论很清晰——优先备份 $HOME,软件用清单重建,既快又省空间,恢复时也最干净。这也是为什么老用户习惯把 $HOME 同步到网盘或 Git:环境可重建,配置与心血不可重建。

二、方法一:tar 全量备份到手机存储

最简单可靠的方式,是把 $HOME 整体打包到手机共享存储。记得先授权存储:

termux-setup-storage
cd /
tar -czf /sdcard/termux-home-$(date +%Y%m%d).tar.gz \
  -C /data/data/com.termux/files/home .

恢复时,新手机装好 Termux 并授权存储后,解压回 home 即可:

cd /data/data/com.termux/files/home
tar -xzf /sdcard/termux-home-20260817.tar.gz

三、方法二:rsync 增量同步到服务器

如果你有一台 VPS,用 rsync 长期保留多份历史版本更合适,它只传输变化的部分,支持断点续传:

pkg install rsync
rsync -avz --delete ~/ 用户@服务器IP:/backup/termux-home/

配合 SSH 公钥登录可免密执行,后续想做定时备份也顺理成章。

四、方法三:用 git 管理 dotfiles

配置文件最好的归宿是版本控制。推荐用 bare repo 方式管理,不额外占用 home 目录,还能在任意设备一键还原:

git init --bare $HOME/.dotfiles
alias dotfiles='git --git-dir=$HOME/.dotfiles --work-tree=$HOME'
dotfiles add .bashrc .vimrc
dotfiles commit -m "backup config"
dotfiles push

换机后 git clone 下来,再配置好同名 alias,环境瞬间复刻。

五、换机迁移完整步骤

  1. 旧手机导出软件清单:pkg list-installed > pkgs.txt
  2. 备份 $HOME:选用上文任一方法,确保压缩包完整。
  3. 新手机恢复:安装 Termux、termux-setup-storage、解压/同步回 home。
  4. 批量装回软件:pkg install $(cat pkgs.txt | awk '{print $1}')
  5. 恢复 dotfiles:git clone 或解压配置文件。
  6. 校验环境:termux-info 对比新旧两台设备的环境差异。

六、自动化:让备份自己跑

把备份做成习惯,而不是临时抱佛脚。用 termux-services 配合 cronie 定时执行备份脚本,再用 Termux:Boot 插件实现开机自启关键服务;脚本放进 ~/binchmod +x 赋予执行权限即可。例如每天凌晨执行一次 rsync:

pkg install cronie termux-services
sv-enable crond
echo '0 3 * * * rsync -avz ~/ 用户@服务器IP:/backup/termux-home/' | crontab -

七、常见坑

八、一句话总结

把 $HOME 交给 tar 或 rsync 定时备份,把配置文件交给 git 版本管理,把软件包交给 pkg list-installed 清单——三者结合,你便拥有了一套可随时在任意设备复刻、换机也不丢环境的 Termux 工作流。基础命令不熟的话,可以先回 图文教程 把地基打牢。

💡
基础命令与软件包管理可回顾 图文教程;其他疑问见 常见问题
📚 使用教程