PROJECTS
   |___ SITE1
   |      |____files (to exclude)
   |      |____img
   |      |____js
   |
   |___ SITE2
   |      |____files (to exclude)
   |      |____img
   |      |____js
   |
   |___ SITE3
          |____files (to exclude)
          |____img
          |____js

Здравствуйте, я хотел бы искать в SITE x папках, исключая содержимое папок с файлами .

Я пытаюсь это, но он отображает мне ошибки прав доступа для файлов в папках файлов (так что, похоже, не исключаю их):

find . ! -path "*/files/*" -type f -name 'foo'

Это отображение (я в каталоге проектов):

./SITE1/img/foo.png
./SITE1/js/foo.js
find: `./SITE1/files/201501': Permission denied
find: `./SITE1/files/201412': Permission denied
find: `./SITE1/files/201501': Permission denied
... (the two firsts matches are pretty good, but I break the execution after, it print too many indesirble matches)

Я был вдохновлен этим ответом на Askubuntu.

Я также пробую опцию -prune, как в этом примере, не находя решения ...


Я хотел бы иметь эквивалент этого поиска с egrep, но для имен файлов

egrep -Rns --exclude-dir=files 'foo' *

Спасибо за вашу помощь !

1 ответ1

0

Готово !

Я не знал, как использовать аргумент чернослива. Это отвечает на мое требование

find * -path "*/files/*" -prune -o -name 'foo' -type f -print

Больше объяснения здесь


С другой стороны, мне было бы любопытно, если есть синтаксис с ! (НЕ) аргумент, как в этом примере на AskUbuntu, если у кого-то есть идея.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .