删除部分文件但不是全部

删除部分文件但不是全部

我有一个包含一些文件的目录,特别是.tex由 创建的文件pdflatex。我希望能够命名并删除所有名为exceptname的文件namename.tex

我试过

rm name.* !(name.tex)

但是它删除了目录下的所有文件(甚至是那些名为 name2 的文件)我想我可以创建一个函数或者其他东西但如果我不必这样做......

答案1

假设 bash 的扩展通配符已启用(Ubuntu 默认启用~/.bashrc),你可以使用name.!(tex)来匹配,name后跟任何点扩展名,但.tex

例如给定

$ ls name*
name  name2  name.bar  name.foo  name.tex  name.txt

然后

$ ls name.!(tex)
name.bar  name.foo  name.txt

消除匹配的文件,替换lsrm(或者 - 更安全 - 替换为rm -i)。

相关内容