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。

相关推荐
MAVER1CK3 小时前
Docker容器创建好后修改容器配置
运维·docker·容器
匆匆那年9674 小时前
VSCode 远程 Linux 使用Codex
linux·ide·vscode
NightReader5 小时前
CPU 高使用率,怎么降下来
运维·服务器
SWAGGY..6 小时前
Linux系统编程:(七)Makefile入门:轻松掌握编译自动化
linux·运维·自动化
开开心心就好6 小时前
免费流畅的远程控制实用工具
linux·运维·服务器·网络·智能手机·excel
黑猫学长呀8 小时前
存储宝典第2篇:盲封TT wafer是什么意思?
linux·嵌入式硬件·项目·芯片·ufs·晶圆·产测
Strugglingler8 小时前
【Linux 用户态操作 UART】
linux·uart
代码熬夜敲Q8 小时前
ENSP 网络工程实验
linux·运维·服务器
銳昊城8 小时前
项目七: 配置与管理Web服务器(2) C2
运维·服务器
Muyuan19988 小时前
30.通过Claude code做项目系统测试
运维·服务器·人工智能·fastapi