Как указать файлы, соответствующие * ~? - PullRequest
0 голосов
/ 10 марта 2012

У меня есть следующая цель муравья:

  <delete>
    <fileset dir="${qnaire_dir}" includes="**/*~" />
  </delete>

Не удаляет следующие файлы:

./DETAILS~
./qnaire/__init__.py~
./qtest.py~
./README~

Какое правильное значение включает в себя соответствие этим файлам?

Ответы [ 2 ]

2 голосов
/ 17 марта 2012

Я нашел ответ! Синтаксис, который я искал:

  <defaultexcludes remove="**/*~" />
  <delete>
    <fileset dir="${qnaire_dir}" includes="**/*~" />
  </delete>
  <defaultexcludes default="true" />

После просмотра документации ant для задачи удаления (http://ant.apache.org/manual/Tasks/delete.html) полдюжины раз я наконец заметил это утверждение:

Если вы используете эту задачу для удаления временных файлов, созданных редакторами, и она не работает, прочитайте на уровне исключения по умолчанию, установленном в задачах на основе каталога, и посмотрите атрибут defaultexclude ниже.

Итак, я пошел и прочитал о значениях по умолчанию. Оказывается, по умолчанию ant исключает набор выражений файлов из всех задач на основе каталогов. Они перечислены здесь: http://ant.apache.org/manual/dirtasks.html#defaultexcludes

Добавление первого элемента defaultexlude и удаление «* ~» из списка позволяет последующей задаче удаления делать правильные вещи. Второй элемент defaultexclude возвращает список исключений по умолчанию.

0 голосов
/ 10 марта 2012

, если вам нужно регулярное выражение, это соответствует всему с ~

.*\~
...