0

I have a directory with some files, especially .tex files and those created by pdflatex. I want to be able to give a name name and remove all the files called name except name.tex

I tried

rm name.* !(name.tex)

but it has removed every file in the directory (even those called name2) I suppose I can create a function or something but if I don't have to...

Ccile
  • 103

1 Answers1

1

Provided bash's extended globbing is enabled (which it is in the default Ubuntu ~/.bashrc), you can use name.!(tex) to match name followed by any dot extension except .tex

Ex. given

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

then

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

To remove the matching files, replace ls by rm (or - safer - by rm -i).

steeldriver
  • 136,215
  • 21
  • 243
  • 336