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。

相关推荐
CAU界编程小白几秒前
Linux编程系列之权限理解和基础开发工具的使用(下)
linux
Run_Teenage2 分钟前
Linux:进程等待
linux·运维·服务器
Trouvaille ~2 分钟前
【Linux】从磁盘到文件系统:深入理解Ext2文件系统
linux·运维·网络·c++·磁盘·文件系统·inode
wdfk_prog4 分钟前
[Linux]学习笔记系列 -- [fs]file
linux·笔记·学习
为什么要内卷,摆烂不香吗11 分钟前
Grafana 12.2.0导入仪表盘
运维·grafana
乾元17 分钟前
AI 驱动的入侵检测与异常会话判别:从规则到行为分析前言:从“捕获敌人”到“守卫秩序”
运维·网络·人工智能·网络协议·安全
___波子 Pro Max.18 分钟前
Linux ps命令-ef参数详解
linux
春日见19 分钟前
眼在手上外参标定保姆级教学(vscode + opencv)
linux·运维·服务器·数码相机·opencv·ubuntu·3d
xwill*28 分钟前
python 字符串拼接
linux·windows·python
梁下轻语的秋缘1 小时前
I2S与I2C
运维·stm32·单片机·51单片机