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。

相关推荐
俺爱吃萝卜几秒前
开源贡献指南:如何给Apache或Linux内核提PR?
linux·开源·apache
火车叼位4 分钟前
告别资源管理器卡顿:Windows 高效复制万级小文件的正确姿势
运维
Cat_Rocky7 分钟前
Docker镜像瘦身
运维·docker·容器
handler0112 分钟前
Linux: 基本指令知识点(3)
linux·服务器·c语言·开发语言·c++·笔记
向宇it14 分钟前
获取服务器hung住时的崩溃日志并自动系统重启——监听服务器异常崩溃问题
运维·服务器
wuminyu15 分钟前
专家视角看Java线程生命周期与上下文切换的本质
java·linux·c语言·jvm·c++
志栋智能31 分钟前
从“成本中心”到“效率引擎”:超自动化巡检的转型之路
运维·数据库·自动化
handler0142 分钟前
Linux 基本指令知识点(1)
linux·c++·笔记
志栋智能1 小时前
超自动化安全:释放安全专家创造力的钥匙
运维·服务器·网络·人工智能·自动化
历程里程碑1 小时前
55 Linux epoll高效IO实战指南
java·linux·服务器·开发语言·前端·javascript·c++