某些场景下我们需要删除目录下指定类型,后缀的文件。这时候就需要一些小技巧。
首先我们先要了解一下模式匹配。在Linux中,shell模式是由以下特殊字符组成的字符串,称为
wildcards
或者metacharacters
:
*
– 匹配零个或多个字符?
– 匹配任何单个字符[seq]
– 匹配seq中的任何字符[!seq]
– 匹配任何不在seq中的字符> rm -v !("filename")
filename1
和 filename2
:> rm -v !("filename1"|"filename2")
.zip
结尾以外的所有文件:> rm -i !(*.zip)
.zip
和.odt
结尾之外的所有文件> rm -v !(*.zip|*.odt)
.gz
结尾以外的所有文件> find . -type f -not -name '*.gz'-delete
pipeline
和 xargs
,删除当前目录中除.gz
结尾以外的所有文件> find . -type f -not -name '*gz' -print0 | xargs -0 -I {} rm -v {}
相关文章