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,环境瞬间复刻。
五、换机迁移完整步骤
- 旧手机导出软件清单:
pkg list-installed > pkgs.txt。 - 备份 $HOME:选用上文任一方法,确保压缩包完整。
- 新手机恢复:安装 Termux、
termux-setup-storage、解压/同步回 home。 - 批量装回软件:
pkg install $(cat pkgs.txt | awk '{print $1}')。 - 恢复 dotfiles:git clone 或解压配置文件。
- 校验环境:用
termux-info对比新旧两台设备的环境差异。
六、自动化:让备份自己跑
把备份做成习惯,而不是临时抱佛脚。用 termux-services 配合 cronie 定时执行备份脚本,再用 Termux:Boot 插件实现开机自启关键服务;脚本放进 ~/bin 并 chmod +x 赋予执行权限即可。例如每天凌晨执行一次 rsync:
pkg install cronie termux-services
sv-enable crond
echo '0 3 * * * rsync -avz ~/ 用户@服务器IP:/backup/termux-home/' | crontab -七、常见坑
- 别直接 cp 整个 home:权限与符号链接极易出错,优先用 tar 保真打包。
- 注意文件完整性:经微信、QQ 传输的压缩包可能被改名或截断,恢复前先校验大小。
- 跨 Android 版本迁移:storage 路径权限可能变化,恢复后重新执行一次
termux-setup-storage。 - 大文件别塞进 home 根目录:照片、视频等应放在
~/storage而非 $HOME,否则备份体积失控、同步极慢。
八、一句话总结
把 $HOME 交给 tar 或 rsync 定时备份,把配置文件交给 git 版本管理,把软件包交给 pkg list-installed 清单——三者结合,你便拥有了一套可随时在任意设备复刻、换机也不丢环境的 Termux 工作流。基础命令不熟的话,可以先回 图文教程 把地基打牢。