首页 > 代码库 > Shell删除特定文件以外的文件

Shell删除特定文件以外的文件

Bash Shell有个extglob选项。开启后Shell可以 另外识别出5个模式匹配操作符,能使文件匹配更加方便 。

开启的方法:

使用shopt命令:shopt -s extglob

关闭的方法:      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)