Linux下删除某个文件之外的其他所有文件

在windows下要删除一个文件夹下除某个文件之外的其他所有文件很简单,选择这个文件,再反选即可。Linux下可能很多人不知道如何实现这种效果,这里分享2种方法:

1 使用xargs

ls | grep -v xxx | xargs rm -r

使用时将xxx替换成要保留的文件名即可。

如果有相似的文件名,可以使用正则表达式匹配完整的文件名,如:

有两个相似的文件名33和331,此时要保留33删除331就需要全匹配
ls | grep -v "^33$" | xargs rm -r

其中的^表示匹配开头位置,$表示匹配结束位置。

2 rm -rf !()

rm -rf !(xxx)

此命令表示删除xxx之外的所有其他文件(包括文件夹)。
注意,-f参数表示此命令删除时没有提示,删除前请务必确保要删除的文件是不再需要的。

此命令在低版本的bash下可能会不生效(实测4.2版本可以正常使用),如果不生效请参考方法1。

相关推荐
济61710 分钟前
linux(第十四期)--官方 SDK 移植实验-- Ubuntu20.04
linux·运维·服务器
范纹杉想快点毕业12 分钟前
欧几里得算法与扩展欧几里得算法,C语言编程实现(零基础全解析)
运维·c语言·单片机·嵌入式硬件·算法
云qq14 分钟前
x86操作系统23——进程相关系统调用
linux·c语言·汇编·ubuntu
小猪佩奇TONY16 分钟前
Linux 内核学习(16) --- linux x86-64 虚拟地址空间和区域
linux·运维·学习
L16247616 分钟前
Docker 安装部署全流程使用指南(Linux 通用版)
linux·docker·容器
杰克崔27 分钟前
kprobe及kretprobe的基于例子来调试分析其原理
linux·运维·服务器·车载系统
小北方城市网29 分钟前
微服务架构设计实战指南:从拆分到落地,构建高可用分布式系统
java·运维·数据库·分布式·python·微服务
桂花树下的猫40 分钟前
ubuntu20.04上docker部署
运维·docker·容器
小李独爱秋40 分钟前
计算机网络经典问题透视:端到端时延和时延抖动有什么区别?
运维·服务器·计算机网络·安全·web安全
`林中水滴`41 分钟前
Linux系列:Ubuntu 防火墙命令
linux·ubuntu