Удаление файлов (все, кроме одного)
Привет всем.
Есть куча файлов
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, и т.п.