博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
【Linux】CentOS7上rpm命令批量卸载删除模糊rpm包名
阅读量:6297 次
发布时间:2019-06-22

本文共 3534 字,大约阅读时间需要 11 分钟。

例如,我要删除如下文件名匹配上wine的所有文件

如果单独rpm删除卸载一个rpm包的话,命令如下:

rpm -evh --nodeps wine-common-1.8.6-1.el7.noarch

-e                   卸载

-vh                   合在一起使用,展示详细信息和进度条

--nodeps               不用查找其他依赖,直接卸载这个

wine-common-1.8.6-1.el7.noarch         文件名,从上面复制下来的

 

但是,上面这个wine打头的文件实在是很多,不想一个一个卸载,怎么办了?

1.首先vim命令新建并打开一个文件

vim uninstall

粘贴如下文本:

进入之后,键盘i进入编辑模式,粘贴下面的话

#!/bin/bash##################################################################  function: batch uninstall rpm packages#  setup:#         1. copy the scripts and save as a file, such as: ex.sh#         2. switch to root user. su - root#         3. change the file's permission: chmod +x ex.sh#         3. running the script with no parameter: ./ex.sh#  runing:#        uninstall [rpm package name]#  author: Topurce Zhou (topurce#at#hotmail.com)#################################################################if [ "$UID" -ne 0 ]then    echo -e 'must be \E[34m\033[1mroot\033[0m to run this script.'    echo -ne '\E[0m'    exit 67fiif [ ! -f /usr/bin/uninstall ]then   echo "building file..."   scripts="$(cat $0)"   declare -i index=1   cat $0 | while read line   do       if (( index == 19 ))       then          echo 'echo -e "must be \E[34m\033[1mroot\033[0m to run this script."'>>/usr/bin/uninstall          echo 'echo -ne "\E[0m"'>>/usr/bin/uninstall       elif (( index == 23 ))       then          echo 'stips="searching packages for \"$1\":"'>>/usr/bin/uninstall      echo 'usage="usage: $0 \"package name\""'>>/usr/bin/uninstall       elif (( index != 19 && index != 20 && (index<23 || index>52) ))       then          echo $line>>/usr/bin/uninstall       fi       index+=1;   done   chmod +x /usr/bin/uninstall   echo "try \"uninstall [package name]\" again."   exitfistips="searching packages for \"$1\":"usage="usage: $0 \"rpm package name\""if [ $# -eq 0 ]then    echo "$0: no rpm packages given for uninstall."    echo $usageelif [ $# -gt 1 ]then       echo $usageelse    echo $stips    rpms="$(rpm -qa | grep $1)"    declare -i count=0    for rpmk in $rpms    do       count+=1       echo "package: $rpmk"    done    if (( count == 0 ))    then       echo "no packages"       exit    fi    echo "packages: $count"    echo    read -p "are you sure you want to uninstall all above packages?(y/n)"    if [[ $REPLY == [Yy] ]]    then         echo "starting to uninstall packages..."         for rpmk in $rpms     do         count+=1         echo "uninstalling package: $rpmk"             rpm -e --nodeps $rpmk             if [ $? -eq 0 ]             then             echo "done"             else                 echo "faild to uninstall $rpmk"             fi      done    fifi
View Code

记住,最后一行不用给回车或者换行。

粘贴完成,Esc以下,shift+Q以下,x保存退出。

 

2.接下来,修改文件权限为可执行

ls -l

查看当前文件的详细信息,包含权限

chmod +x uninstall

为uninstall文件添加x   即可操作的权限

再次查看,就可以看到uninstall文件当前已经有了可读可写可操作的权限了。

 

3.最后执行本文件

./uninstall

./文件名,就是执行本文将

可以看到

提示中,要求 在执行./uninstall文件的时候,直接在后面把rpm package name加上一起执行,注意这里的rpm包名字是模糊查询的,

【注意】:一定要注意,如果你不能确定rpm包名模糊匹配下删除的文件,涉及到linux系统的,千万不要使用此方法去批量卸载删除。

 

正因为是模糊查询的,因此本方法中是由相关提示的,你可以在下面执行过程中,查看是否不会涉及到你不想卸载的东西而决定是否继续。

上面接着,要加上rpm包名,所以执行下面的命令:

./uninstall wine

wine就是我要卸载的包名,模糊查询,出来下面的结果

上面将你即将 要卸载的文件一一列出来了,确定要批量删除的话

键入y即可。

-----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------

----------------------------------------------------------------------------------批量删除完成-------------------------------------------------------------------------------------------

转载地址:http://vgmta.baihongyu.com/

你可能感兴趣的文章
话说模式匹配(5) for表达式中的模式匹配
查看>>
《锋利的SQL(第2版)》——1.7 常用函数
查看>>
jquery中hover()的用法。简单粗暴
查看>>
线程管理(六)等待线程的终结
查看>>
spring boot集成mongodb最简单版
查看>>
DELL EqualLogic PS存储数据恢复全过程整理
查看>>
《Node.js入门经典》一2.3 安装模块
查看>>
《Java 开发从入门到精通》—— 2.5 技术解惑
查看>>
Linux 性能诊断 perf使用指南
查看>>
实操分享:看看小白我如何第一次搭建阿里云windows服务器(Tomcat+Mysql)
查看>>
Sphinx 配置文件说明
查看>>
数据结构实践——顺序表应用
查看>>
python2.7 之centos7 安装 pip, Scrapy
查看>>
机智云开源框架初始化顺序
查看>>
Spark修炼之道(进阶篇)——Spark入门到精通:第五节 Spark编程模型(二)
查看>>
一线架构师实践指南:云时代下双活零切换的七大关键点
查看>>
ART世界探险(19) - 优化编译器的编译流程
查看>>
玩转Edas应用部署
查看>>
music-音符与常用记号
查看>>
sql操作命令
查看>>