Linux 如何删除所有未以特定格式结尾的文件?

Linux 如何删除所有未以特定格式结尾的文件?,linux,shell,Linux,Shell,所以要删除所有以.lnx结尾的文件,cmd应该是rm*.lnx,对吗 如果我想删除所有不以[.lnx]结尾的文件,我应该使用什么命令 有这样的事吗 find . -depth 1 -type f -not -name '*.lnx' -delete 查找当前目录(-depth 1)中与文件名不匹配的所有文件(-not-name'*.lnx'),然后删除它们(-delete) 和往常一样,先测试一下。在不使用-delete的情况下运行它,以查看所有匹配的文件。您可以使用: 很好,但请注意,您需

所以要删除所有以
.lnx
结尾的文件,cmd应该是
rm*.lnx
,对吗

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

有这样的事吗

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

和往常一样,先测试一下。在不使用
-delete
的情况下运行它,以查看所有匹配的文件。

您可以使用:



很好,但请注意,您需要启用
extglob
(使用
shopt-s extglob
)才能使用它。在Ubuntu中:
extglob
是默认值。我是否错过了他说的Ubuntu上的位置?我在任何地方都看不到它的陈述或暗示。无论如何,它不一定会为每个来此线程寻求答案的人打开,因此值得注意。
-type f
不是必需的。他没有说他想排除目录。
$ 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 ‘|’.
ls | grep -v '\.lnx$' | xargs rm