如何用正则表达式批量删除文件
我们都知道 linux 命令行 使用 rm 可以删除文件, 但是当有时候想要批量删除一些自动生成的文件(照片,音乐)等等自动生成命名的文件时, 我们需要怎么办呢, 下面是两种办法
1. 通过通配符批量删除文件
例如我的文件夹里现在有这么几个文件, 我想要把他们一次性删除, 可以在当前文件夹内执行如下命令
$ rm test-{1..20}.txt
这样就可以全部删除了!
2. 使用正则表达式批量删除文件
正则表达式删除的命令稍微有点不一样, 因为 rm 默认是不支持正则表达式的, 所以我们要用支持正则表达式的 grep 和 命令来帮忙。
ls | grep -P "test-[1-2]{0,1}[0-9].jpg" | xargs -d"\n" rm
这行命令 通过 ls 拿到当前文件夹内所有文件并通过 管道符 “|” 传给 grep 用正则来过滤, 最后通过 xargs 命令来二次过滤掉换行符, 然后执行 rm 函数来批量删除, 这样就完成了!