我有一个包含一些文件的目录,特别是.tex
由 创建的文件pdflatex
。我希望能够命名并删除所有名为exceptname
的文件name
name.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
到消除匹配的文件,替换ls
为rm
(或者 - 更安全 - 替换为rm -i
)。