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。

相关推荐
Nice__J3 分钟前
ISO26262功能安全——SafeOS
java·linux·安全
不仙5209 分钟前
Hermes 接入飞书(Feishu/Lark)部署文档
linux·服务器·ai
bukeyiwanshui10 分钟前
222第一阶段考核-实验-模拟题
运维
夹芯饼干19 分钟前
虚拟机指令第六节
java·linux·服务器
国冶机电安装1 小时前
计算机网络系统安装的结构逻辑、施工重点与运维价值
运维·网络·计算机网络
The Chosen One9851 小时前
遗漏知识点补充(lesson12&&Linux进程(1))
linux·运维·服务器
醇氧1 小时前
WSL2(Windows Subsystem for Linux ) 从入门到实践指南
linux·运维·服务器·windows·学习
wangyangyangcumt1 小时前
银河麒麟V10 SP3离线安装Nginx1.21.5全记录
linux·运维·数据库
羊小蜜.2 小时前
Linux 03:僵死进程(Zombie Process)原理、危害与解决方案
linux·运维·服务器
yang9yun2 小时前
linux宝塔面板使用API自动部署更新文件
linux·运维·状态模式