删除没有特定扩展名的文件
Removing files without a specific extension
我有一个文件列表 - 有些以 .txt 结尾,有些则没有。我如何 运行 删除所有不以 txt 结尾的文件的命令?
我试过了:
rm *.[^txt]
但这没有用?
试试这个:
rm !(*.txt)
它应该删除所有不以 .txt 结尾的文件
首先执行 shopt -s extglob
以确保启用扩展模式匹配功能。
shopt -s
将向您显示所有已启用的可选 shell 行为。
如果您使用的是bash,您可以开启extglob
shell选项:
shopt -s extglob
然后您可以使用扩展模式语法 !(pattern)
来匹配所有不匹配 pattern
的文件名。首先,使用 echo
:
进行测试
echo !(*.txt)
假设输出是您要删除的文件,扣动扳机:
rm !(*.txt)
我有一个文件列表 - 有些以 .txt 结尾,有些则没有。我如何 运行 删除所有不以 txt 结尾的文件的命令?
我试过了:
rm *.[^txt]
但这没有用?
试试这个:
rm !(*.txt)
它应该删除所有不以 .txt 结尾的文件
首先执行 shopt -s extglob
以确保启用扩展模式匹配功能。
shopt -s
将向您显示所有已启用的可选 shell 行为。
如果您使用的是bash,您可以开启extglob
shell选项:
shopt -s extglob
然后您可以使用扩展模式语法 !(pattern)
来匹配所有不匹配 pattern
的文件名。首先,使用 echo
:
echo !(*.txt)
假设输出是您要删除的文件,扣动扳机:
rm !(*.txt)