#linux #bash
#линукс #удар
Вопрос:
У меня есть этот фрагмент
find . ( -iname *.ini -o -iname *.properties -o -iname *.xml ) -type f -delete
который удаляет все во всех вложенных папках, содержащих эти расширения, что именно то, что я хочу.
Единственное изменение, которое я хочу внести, — теперь я хотел бы, чтобы это исключало каталог с именем «Ресурсы/». Я хочу, чтобы он удалил все отмеченные файлы расширений во всех вложенных папках, КРОМЕ каталога ресурсов.
Однако я не уверен, как это сделать.
Мы ценим любую и всяческую помощь
Ответ №1:
Приведенная ниже команда должна исключить раздел ресурсов,
find . ( -iname *.ini -o -iname *.properties -o -iname *.xml ) -type f -not -path "./resources/*" -delete
Комментарии:
1. Почему это так, что
-not path
не обязательно идти впереди? Разве предикаты не оцениваются слева направо?