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。

相关推荐
青木9604 小时前
前后端开发调试运行技巧
linux·服务器·前端·后端·npm·uv
c++之路4 小时前
C++ 模板
linux·开发语言·c++
xcbrand4 小时前
餐饮品牌全案公司哪家可靠
运维·python
apl3594 小时前
GUI 型 DevOps 平台的天花板,Ashby 在 1956 年就画好了
运维·devops
云动课堂4 小时前
【运维实战】MySQL 8.0 数据库 · 一键自动化部署方案 (适配银河麒麟 V10 / 龙蜥 8 / Rocky Linux 8 / CentOS 8)
linux·运维·数据库
cui_ruicheng4 小时前
Linux进程间通信(一):管道与IPC基础
linux·运维·服务器
Lumos_7774 小时前
Linux -- 互斥锁
linux
一叶龙洲4 小时前
Ubuntu开机无法用向日葵远程控制
linux·运维·ubuntu
计算机安禾5 小时前
【Linux从入门到镜头】第29篇:文本处理三剑客(下)——awk 数据处理神器
linux·运维·服务器
xyx-3v5 小时前
信号量(二进制/计数)
java·linux·数据库