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。

相关推荐
东北甜妹12 小时前
K8s pod优先级 和 HPA水平扩缩容
linux·运维·服务器
无限进步_12 小时前
【Linux】网络发展背景与协议分层模型
linux·运维·网络
比昨天多敲两行13 小时前
Linux命令行参数,环境变量和程序地址空间
linux·运维·服务器
長安一片月13 小时前
snort安装与使用
linux·运维·服务器
kyle~13 小时前
C++---段错误(SIGSEGV)
linux·运维·c++·机器人
Irene199113 小时前
(表格+词源+前端类比的方式)记忆常用 Linux 命令
linux
nj012813 小时前
Linux 根分区占满排查与 SSH 暴力破解日志清理记录
linux·运维·ssh
xingfujie13 小时前
第2章:服务器规划与基础环境配置
linux·运维·微服务·云原生·容器·kubernetes·负载均衡
shizhan_cloud13 小时前
华为云核心服务运维知识点与高频实操问题总结
运维·华为云
l1t13 小时前
DeepSeek总结的Quack:DuckDB 客户端-服务器协议(二)
运维·服务器·duckdb