Linux软连接版本控制实践
一 核心思路
二 使用 alternatives 的标准流程
sudo update-alternatives --install <link_path> <name> <path> <priority>sudo update-alternatives --install /usr/bin/python python /usr/bin/python2 100
sudo update-alternatives --install /usr/bin/python python /usr/bin/python3 150
sudo update-alternatives --display pythonsudo update-alternatives --config pythonsudo update-alternatives --auto python / --set python /usr/bin/python3sudo update-alternatives --install /usr/bin/java java /opt/jdk8/bin/java 1 \
--slave /usr/bin/javac javac /opt/jdk8/bin/javac \
--slave /usr/bin/jar jar /opt/jdk8/bin/jar
sudo update-alternatives --install /usr/bin/java java /opt/jdk17/bin/java 2 \
--slave /usr/bin/javac javac /opt/jdk17/bin/javac \
--slave /usr/bin/jar jar /opt/jdk17/bin/jar
sudo update-alternatives --remove python /usr/bin/python2sudo update-alternatives --remove-all python三 直接用 ln 创建与管理软连接的要点
ln -s <target> <link_name>(建议使用绝对路径,减少移动后失效)ln -sf <target> <link_name>rm <link_name>(删除链接本身,不影响目标)-s 创建软链;-f 强制;-i 覆盖前交互;-v 显示过程-r 创建相对路径软链(相对链接所在目录);-n 将指向目录的链接当作普通文件处理ln -sb <target> <link_name>;备份策略由 --backup[=CONTROL] 或环境变量 VERSION_CONTROL 控制,常见值:none/off、numbered/t、existing/nil、simple/never四 实践建议与常见问题
update-alternatives --display <name> 或 readlink -f <link> 校验实际指向,避免“链接链”过长或指向错误。