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)