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。

相关推荐
charlie1145141911 小时前
嵌入式Linux驱动开发——新字符设备驱动 API 概览
linux·运维·驱动开发
♛识尔如昼♛1 小时前
C 进阶(2) - 文件I/O
linux·文件i/o
顺风尿一寸1 小时前
深入 Linux 内核 6.8.12:从 Futex 到 MCS 队列自旋锁的完整同步机制剖析
linux
DFT计算杂谈2 小时前
VASP官方教程 TRIQS DFT+DMFT计算教程
运维·css·自动化·html·css3
橙子也要努力变强2 小时前
信号的保存、阻塞与递达
linux·服务器·c++
进阶的猪2 小时前
使用printk对SPI子系统全过程的追踪
linux·服务器
2301_803554522 小时前
Linux里面的文件描述符和windows里面的句柄
linux·运维·服务器
IT摆渡者2 小时前
linux 系统安全检查
运维·网络·经验分享·笔记
星马梦缘2 小时前
如何切换window-ubuntu双系统【方案一】
linux·ubuntu·双系统
云动课堂2 小时前
【运维实战】Nginx 高性能Web服务 · 一键自动化部署方案 (适配银河麒麟 V10 / openEuler / CentOS 7/8)
运维·前端·nginx