删除没有特定扩展名的文件

时间:2015-11-29 06:41:07

标签: bash unix command-line sh

我有一个文件列表 - 一些以.txt结尾,一些不以.txt结尾。如何运行命令删除所有不以txt结尾的文件?

我试过了:

rm *.[^txt]

但那不起作用?

2 个答案:

答案 0 :(得分:3)

如果您使用的是bash,则可以打开extglob shell选项:

shopt -s extglob

然后,您可以使用扩展模式语法!(pattern)来匹配与pattern不匹配的所有文件名。首先,使用echo

进行测试
echo !(*.txt)

假设输出是您要删除的文件,请拉动触发器:

rm !(*.txt)

答案 1 :(得分:2)

试试这个:

rm !(*.txt)

它应该删除所有不以.txt

结尾的文件

首先执行shopt -s extglob以确保启用扩展模式匹配功能 shopt -s将向您显示所有已启用的可选shell行为。