zoukankan      html  css  js  c++  java
  • linux 中删除当前目录下指定文件外所有的文件

    1、ls + grep + xargs  实现

    a、

    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# ls | grep -v "kk.map"
    abc1.csv
    abc10.csv
    abc2.csv
    abc3.csv
    abc4.csv
    abc5.csv
    abc6.csv
    abc7.csv
    abc8.csv
    abc9.csv
    mn.ped
    test1.txt
    test10.txt
    test2.txt
    test3.txt
    test4.txt
    test5.txt
    test6.txt
    test7.txt
    test8.txt
    test9.txt
    root@DESKTOP-1N42TVH:/home/test# ls | grep -v "kk.map" | xargs rm -rf   ## 删除除kk.map外以外的所有文件
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map

    b、

    root@DESKTOP-1N42TVH:/home/test# ls
    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# ls | grep -E -v "kk.map|mn.ped"
    abc1.csv
    abc10.csv
    abc2.csv
    abc3.csv
    abc4.csv
    abc5.csv
    abc6.csv
    abc7.csv
    abc8.csv
    abc9.csv
    test1.txt
    test10.txt
    test2.txt
    test3.txt
    test4.txt
    test5.txt
    test6.txt
    test7.txt
    test8.txt
    test9.txt
    root@DESKTOP-1N42TVH:/home/test# ls | grep -E -v "kk.map|mn.ped" | xargs rm -rf  ## 删除除kk.map和mn.ped以外的所有文件
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map  mn.ped

    2、find实现

    a、

    root@DESKTOP-1N42TVH:/home/test# ls
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# find ./ -name "kk.map"
    ./kk.map
    root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map"
    ./
    ./test8.txt
    ./abc1.csv
    ./abc8.csv
    ./abc3.csv
    ./test6.txt
    ./test10.txt
    ./test2.txt
    ./abc10.csv
    ./test1.txt
    ./test9.txt
    ./test5.txt
    ./abc7.csv
    ./test7.txt
    ./abc2.csv
    ./abc6.csv
    ./abc4.csv
    ./test3.txt
    ./abc5.csv
    ./abc9.csv
    ./mn.ped
    ./test4.txt
    root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" -exec rm -rf {} \; #删除除kk.map文件以外的所有文件
    rm: refusing to remove '.' or '..' directory: skipping './'
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map

    b、

    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" ! -name "mn.ped"
    ./
    ./test8.txt
    ./abc1.csv
    ./abc8.csv
    ./abc3.csv
    ./test6.txt
    ./test10.txt
    ./test2.txt
    ./abc10.csv
    ./test1.txt
    ./test9.txt
    ./test5.txt
    ./abc7.csv
    ./test7.txt
    ./abc2.csv
    ./abc6.csv
    ./abc4.csv
    ./test3.txt
    ./abc5.csv
    ./abc9.csv
    ./test4.txt
    root@DESKTOP-1N42TVH:/home/test# find ./ ! -name "kk.map" ! -name "mn.ped" -exec rm -rf {} \;   ## 删除除kk.map和mn.ped以外的所有文件
    rm: refusing to remove '.' or '..' directory: skipping './'
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map  mn.ped

    3、rm !实现

    a、

    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# rm !(kk.map)   ## 删除除kk.map文件以外的所有文件
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map

    b、

    root@DESKTOP-1N42TVH:/home/test# touch kk.map mn.ped
    root@DESKTOP-1N42TVH:/home/test# touch test{1..10}.txt
    root@DESKTOP-1N42TVH:/home/test# touch abc{1..10}.csv
    root@DESKTOP-1N42TVH:/home/test# ls
    abc1.csv   abc2.csv  abc4.csv  abc6.csv  abc8.csv  kk.map  test1.txt   test2.txt  test4.txt  test6.txt  test8.txt
    abc10.csv  abc3.csv  abc5.csv  abc7.csv  abc9.csv  mn.ped  test10.txt  test3.txt  test5.txt  test7.txt  test9.txt
    root@DESKTOP-1N42TVH:/home/test# rm !(kk.map|mn.ped)   ## 删除除kk.map和mn.ped以外的所有文件
    root@DESKTOP-1N42TVH:/home/test# ls
    kk.map  mn.ped
  • 相关阅读:
    挑战安全的捉迷藏病毒和木马的隐藏手段
    如何清除局域网中的ARP病毒
    挑战安全的捉迷藏病毒和木马的隐藏手段
    MS07027:Internet Explorer本月累积性安全更新
    对Autorun.inf类U盘病毒的攻防经验总结
    对Autorun.inf类U盘病毒的攻防经验总结
    如何清除局域网中的ARP病毒
    挂马方式和系统判断等代码
    linux下phpMyAdmin泛起1045 Access denied for 的措置
    在ubuntu8.04上用evolution接受163邮件
  • 原文地址:https://www.cnblogs.com/liujiaxin2018/p/15773337.html
Copyright © 2011-2022 走看看