• Linux下使用rm删除文件,并排除指定文件


    推荐文章

    Linux 最常用命令整理,建议收藏!

    linux ss 命令用法说明

    如何配置Linux系统的IP地址?

    Linux TCP状态TIME_WAIT 过多的处理

       rm是我们在Linux下删除文件经常用到的命令,但是有时候我们目录下有很多个文件想要删除,偏偏却要保留其中1个或几个文件,那怎么办呢?很多新手朋友可能会采取一个一个文件删除的方法来操作,但是如果文件很多呢?删到啥时候啊~~

    今天我们就来教大家使用rm命令删除文件的时候如何排除指定的文件(不删除指定文件)。首先我们来看一下平时我们是怎么使用rm命令的。

    1、删除单个文件

    rm 1.txt
    
    2、强制删除文件,无需确认
    rm -rf 1.txt
    
    3、删除文件夹
    rm -rf mydir
    
    4、删除目录下全部文件,包括文件夹
    rm -rf *
    
    5、删除全部文件,但保留1.txt
    rm -rf !(1.txt)
    

    正常情况下是全部文件被删除了,只留下了1.txt,但是有时候我们的系统没配置好,可能会报错,例如下面这种:

    root@abc:/home/# rm -rf !(1.txt)
    -bash: !: event not found
    

    上面这种情况是因为我们的系统没有开启通配符功能,我们执行下面的命令开启通配符功能先:

    shopt -s  extglob
    
    查看通配符功能是否开启,on表示已经开启
    shopt -s
    

    然后我们再次执行前面的命令就可以看到文件已经全部删除了,只保留了1.txt

    rm -rf !(1.txt)
    

    6、删除全部文件,保留1.txt和2.txt

    rm -rf !(1.txt|2.txt)
    

    上面我们说的都是直接用rm + !(叹号)来排除文件的,下面我们搞个高深一点的,用find + grep + xargs三个命令一起用

    7、删除全部文件,保留1.txt

    find * | grep -v 1.txt | xargs rm
    

    这里我们要特别注意grep的-v参数,-v参数表示反选,比如我们上面指定了-v 1.txt,即排除掉1.txt,选中其他全部文件。所以这样执行之后1.txt就被排除了

    8、删除全部文件,保留1.txt和2.txt

    find * | grep -v '\(1.txt\|2.txt\)' | xargs rm
    

    这里要特别留意,括号()跟括号内的竖线|需要添加\进行转义,否则会报错

    今天讲的就这些,都是非常实用的技巧,大家赶紧动手试试吧

    赞赏码

    非学,无以致疑;非问,无以广识

  • 相关阅读:
    HDOJ 2095 find your present (2)
    HDOJ 2186 悼念512汶川大地震遇难同胞——一定要记住我爱你
    九度 1337 寻找最长合法括号序列
    九度 1357 疯狂地Jobdu序列
    HDOJ 1280 前m大的数
    九度 1343 城际公路网
    九度 1347 孤岛连通工程
    HDOJ 2151 Worm
    九度 1342 寻找最长合法括号序列II
    九度 1346 会员积分排序
  • 原文地址:https://www.cnblogs.com/lxwphp/p/15452686.html
Copyright © 2020-2023  润新知