我有一个文件列表 - 一些以.txt结尾,一些不以.txt结尾。如何运行命令删除所有不以txt结尾的文件?
我试过了:
rm *.[^txt]
但那不起作用?
答案 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行为。