Удаление файлов (все, кроме одного)
![](http://mediasubs.ru/author/avatar/4163361.png)
Привет всем.
Есть куча файлов
file01.tex
file01.dvi
file01.ps
file01.xml
file01.htm
file02.tex
file02.dvi
file02.ps
file02.xml
file02.htm
...
fileNN.tex
fileNN.dvi
fileNN.ps
fileNN.xml
fileNN.htm
Переодически необходимо удалять все файлы, кроме tex
rm *.dvi *.ps *.xml *.htm
Однако могут добавится файлы с другим расширением.
Написал такое
#-- rmallexept.ch
#!/bin/bash
rmtempdir=$TMPDIR/$(date +%Y%m%d)
mkdir -p $rmtempdir
mv *.tex $rmtempdir
rm *
mv $rmtempdir/*.tex $PWD
rmdir $rmtempdir
Может кто подскажет более элегантное решение
Что-то типа:
rmAllExcept *.tex file02.ps file03.xml
В сообщении от 1139673487 секунд после начала Эпохи Владимир Ковалев написал(а):
Не намного лучше:
$ rm *.{dvi,ps,xml,htm}
Или:
$ find -type f ! -name '*.tex' -delete
IMHO, проще использовать утилиту make.
начало Makefile %.dvi: %.tex
latex $<
%.ps: %.dvi
dvips -o $@ $<
%.xml: %.tex
xmltex $<
%.pdf: %.tex
pdflatex $<
clean:
rm -f *.dvi *.ps *.xml *.htm
конец Makefile В результате, чтобы получить, например, `file01.ps', нужно выполнить:
$ make file01.ps
При этом если соответствующего DVI-файла не существует или он старее
чем соответствующий TEX-файл, то make создаст этот недостающий DVI-файл
автоматически применяя первое правило из `Makefile'.
Чтобы удалить выходные файлы:
$ make clean
Приведенный `Makefile' конечно очень упрощенный. В действительности я
использую более сложные файлы с большим числом правил и переменных, что
позволяет мне автоматически строить зависимости между файлами,
автоматически конвертировать форматы изображений (включая вызов
MetaPost'а), задавать опции для dvips, выполнять несколько проходов
latex, и т.п.