sh 如果有两个以上可用,则删除最旧的Linux内核和相关软件包。 #bash #linux #bash-select #kernel

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sh 如果有两个以上可用,则删除最旧的Linux内核和相关软件包。 #bash #linux #bash-select #kernel相关的知识,希望对你有一定的参考价值。

#!/bin/bash 

KERNELS=`ls /boot | grep vmlinuz | cut -d'-' -f2,3`
echo Available kernels: $KERNELS
KERNCOUNT=`echo $KERNELS | wc -w`
if [ $KERNCOUNT -gt 2 ]; 
then
	OLDEST=`echo "${KERNELS%% *}" | head -1`
	PACKAGES=`dpkg -l | grep ^ii |grep $OLDEST | awk -F' ' '{ print $2 }'`
	echo "Oldest package (to be removed): $OLDEST"
	echo These packages will be removed: $PACKAGES
	echo Proceed?
	PS3="Select: "
	select yn in Yes No; 
	do
		case $yn in 
			Yes) 
				echo "Proceed";break
				;;
		        *) 
				exit
				;;
		esac
	done
	sudo apt-get remove -y $PACKAGES
	echo Done removing oldest kernel
else
	echo There are only two kernels in the system. Aborting.
fi

以上是关于sh 如果有两个以上可用,则删除最旧的Linux内核和相关软件包。 #bash #linux #bash-select #kernel的主要内容,如果未能解决你的问题,请参考以下文章

Android Sqlite 根据日期列删除最旧的重复结果

如何从字典中删除最旧的元素?

删除最旧的项目时防止 ListView 垂直滚动

git stash drop 最旧的存储(比如最旧的 5 个存储)

Bash:如何删除文件夹中第 n 个最旧的文件? [复制]

我想让我的数据库里只保存最新的十条记录,超过十条,删除最旧的一条