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。

相关推荐
努力的小帅19 小时前
Linux_基础IO(Linux入门到精通)
linux·动态库·静态库·计算机组成原理·io操作
txzz888819 小时前
CentOS-Stream-10 系统安装之Firewalld防火墙配置
linux·运维·网络·计算机网络·centos·firewall-cmd·linux防火墙
Konwledging19 小时前
VMA-virtual memory areas
linux
无事好时节19 小时前
【Linux 进程详解】从 PCB 到 fork
linux
NZT-4819 小时前
服务器访问github受限的解决办法
运维·服务器·github
kaoa00019 小时前
Linux入门攻坚——57、HAProxy
linux·运维·服务器
噜啦噜啦嘞好19 小时前
Linux——网络概念
linux·网络
欢喜躲在眉梢里19 小时前
基于 openFuyao 社区的无硬件 UB 开发实战指南
运维·数据库·人工智能·vscode·ai·开发工具·go开发
博语小屋19 小时前
简单线程池实现(单例模式)
linux·开发语言·c++·单例模式
import_random19 小时前
[环境变量]export命令的作用是什么
linux