linux服务器代码版本指定个数版本的方法

栏目: Linux 发布时间:2024-11-01

我们在部署项目代码时,通常都会在服务端保留至少 3 个历史版本,方便做代码回滚。

今天我们就来聊一聊在 linux 服务器上要如何实现自动保留指定数量的代码版本。

假设当前目录有5个目录:

version-a
version-b
version-c
version-d
version-e

linux 保留 3 个版本代码的 shell 脚本:

ls | grep -vE $(ls -t | head  -n 3 | tr '\n' '|')whatever | xargs rm -rf

执行上述命令后我们得到:

version-e
version-d
version-c

命令拆解之 grep

grep
ls | grep version
ls | grep -v 'version-a'
ls | grep -v 'version-a' | grep -v 'version-b'
ls | grep -vE 'version-a|version-b'

命令拆解之 head 的用法

head
ls | head -n 3

命令拆解之 xargs 的用法

ls | xargs rm -rf
ls | grep -v version-a | xargs rm -rf

命令拆解之 tr 的用法

echo hi | tr i a
echo hi | tr a-z A-Z
echo hi | tr [:lower:] [:upper:]

小结

linux 保留指定数量版本的代码实现原理(以保留 3 个版本为例): 1、使用 ls -t 将代码目录倒序排序 2、使用 head -n 3 取到最新的 3 个代码目录 3、使用 grep -vE 排除最新的 3 个版本 4、使用 rm -rf 删除多余的版本

即:

ls | grep -vE $(ls -t | head  -n 3 | tr '\n' '|')whatever | xargs rm -rf

本文地址:https://www.tides.cn/p_linux-deploy-version-manage