linux系统中如何删除某些文件或者某一类以外的所有文件
1、创建测试文件:
[root@centos7 test]# touch {a..f}.txt
[root@centos7 test]# ls
a.txt b.txt c.txt d.txt e.txt f.txt
2、删除b.txt文件以外的所有文件
method1:
[root@centos7 test]# rm !("b.txt")
[root@centos7 test]# ls
b.txt
method2:
[root@centos7 test]# touch {a..f}.txt [root@centos7 test]# ls a.txt b.txt c.txt d.txt e.txt f.txt [root@centos7 test]# find ./ -not -name "b.txt" -exec rm -f {} \; rm: cannot remove ‘./’: Is a directory [root@centos7 test]# ls b.txt
method3:
[root@centos7 test]# touch {a..f}.txt [root@centos7 test]# ls a.txt b.txt c.txt d.txt e.txt f.txt [root@centos7 test]# ls | grep -v "b.txt" | xargs rm -f [root@centos7 test]# ls b.txt
3、删除 b.txt和c.txt以外的文件
[root@centos7 test]# touch {a..f}.txt [root@centos7 test]# ls a.txt b.txt c.txt d.txt e.txt f.txt [root@centos7 test]# rm !("b.txt"|"c.txt") [root@centos7 test]# ls b.txt c.txt
[root@centos7 test]# touch {a..f}.txt [root@centos7 test]# ls a.txt b.txt c.txt d.txt e.txt f.txt [root@centos7 test]# find ./ -type f -not -name "b.txt" -not -name "c.txt" -exec rm -f {} \; [root@centos7 test]# ls b.txt c.txt
[root@centos7 test]# touch {a..f}.txt [root@centos7 test]# ls a.txt b.txt c.txt d.txt e.txt f.txt [root@centos7 test]# ls | grep -E -v "b.txt|c.txt" | xargs rm -f [root@centos7 test]# ls b.txt c.txt
4、删除某一类文件之外的所有文件
删除txt文件之外的所有文件
[root@centos7 test]# touch {a..d}.txt {a..d}.csv {a..d}.png
[root@centos7 test]# ls
a.csv a.png a.txt b.csv b.png b.txt c.csv c.png c.txt d.csv d.png d.txt
[root@centos7 test]# rm !(*.txt)
[root@centos7 test]# ls
a.txt b.txt c.txt d.txt
[root@centos7 test]# touch {a..d}.txt {a..d}.csv {a..d}.png [root@centos7 test]# ls a.csv a.png a.txt b.csv b.png b.txt c.csv c.png c.txt d.csv d.png d.txt [root@centos7 test]# find ./ -type f ! -name "*.txt" -exec rm -f {} \; [root@centos7 test]# ls a.txt b.txt c.txt d.txt
5、删除txt和csv文件以外的所有文件
[root@centos7 test]# touch {a..d}.txt {a..d}.csv {a..d}.png [root@centos7 test]# ls a.csv a.png a.txt b.csv b.png b.txt c.csv c.png c.txt d.csv d.png d.txt [root@centos7 test]# rm !(*.txt|*.csv) [root@centos7 test]# ls a.csv a.txt b.csv b.txt c.csv c.txt d.csv d.txt
[root@centos7 test]# touch {a..d}.txt {a..d}.csv {a..d}.png [root@centos7 test]# ls a.csv a.png a.txt b.csv b.png b.txt c.csv c.png c.txt d.csv d.png d.txt [root@centos7 test]# find ./ -type f ! -name "*.txt" ! -name "*.csv" -exec rm -f {} \; [root@centos7 test]# ls a.csv a.txt b.csv b.txt c.csv c.txt d.csv d.txt
分类:
linux shell
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 单元测试从入门到精通
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律
2020-06-25 yum install epel-release 报错 解决 记录