admin管理员组

文章数量:1660067

linux(模糊批量删除文件)删除指定文件夹中某个文件除外的其他文件

# shopt -s extglob

# rm -fr !(file1)  (慎用)

排除多个可以这样:

# rm -rf !(file1|file2)  (慎用)

首先科普下shopt -s extglob
Bash Shell有个extglob选项,开启之后Shell可以另外识别出5个模式匹配操作符,能使文件匹配更加方便。

开启shopt命令:shopt -s extglob
关闭shopt命令:shopt -u extglob

开启将会有5个模式匹配操作符将被识别:

?(pattern-list) - 所给模式匹配0次或1次;
*(pattern-list) - 所给模式匹配0次以上包括0次
+(pattern-list) - 所给模式匹配1次以上包括1次
@(pattern-list) - 所给模式仅仅匹配1次
!(pattern-list) - 不匹配括号内的所给模式

示例

删除文件名不以jpg结尾的文件:

rm -rf !(*jpg)

删除文件名以jpg或png结尾的文件:

rm -rf *@(jpg|png)

本文标签: 模糊文件Linux