如果要删除所有以.lnx
结尾的文件,命令应该是rm *.lnx
,是吗?
如果我想要删除所有不以[.lnx]结尾的文件,我应该使用什么命令?
是否有这样的命令?
$ rm !(*.lnx)
!(pattern-list)
Matches anything except one of the given patterns.
A pattern-list is a list of one or more patterns separated by a ‘|’.
find . -depth 1 -type f -not -name '*.lnx' -delete
查找当前目录下所有文件 (-type f
),深度为1 (-depth 1
),且文件名不匹配 (-not -name '*.lnx'
),然后删除它们 (-delete
)。
像往常一样,请先测试一下。运行时不要加上 -delete
选项,以查看所有与条件匹配的文件。
ls | grep -v '\.lnx$' | xargs rm
extglob
(使用shopt -s extglob
)才能使用它。 - Kevin