如何删除所有不以某些格式结尾的文件?

use*_*454 5 linux shell

所以要删除所有以.结尾的文件.lnx,cmd会是rm *.lnx,对吧?

如果我想删除所有不以[.lnx]结尾的文件,我应该使用什么命令?

有这样的事吗?

nac*_*ito 16

find . -depth 1 -type f -not -name '*.lnx' -delete
Run Code Online (Sandbox Code Playgroud)

找到-type f当前目录(-depth 1)中与filename(-not -name '*.lnx')不匹配的所有文件(),并删除它们(-delete)

一如既往,先测试一下.无需-delete查看所有匹配的文件即可运行它.

  • "所以删除所有文件" (4认同)

kev*_*kev 16

你可以用这个:

$ rm !(*.lnx)
Run Code Online (Sandbox Code Playgroud)
!(pattern-list)
    Matches anything except one of the given patterns. 
    A pattern-list is a list of one or more patterns separated by a ‘|’.
Run Code Online (Sandbox Code Playgroud)

  • 很好,但请注意你需要`extglob`启用(使用`shopt -s extglob`)才能使用它. (4认同)

Man*_*ish 3

ls | grep -v '\.lnx$' | xargs rm
Run Code Online (Sandbox Code Playgroud)