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