шаблон `find -name`, который соответствует нескольким шаблонам - PullRequest
283 голосов
/ 16 июля 2009

Я пытался получить список всех файлов Python и HTML в каталоге с помощью команды find Documents -name "*.{py,html}".

Затем появилась справочная страница:

Скобки в шаблоне ('{}') не считаются специальными (то есть find. -Name 'foo {1,2}' соответствует файлу с именем foo {1,2}, а не файлам foo1 и foo2.

Поскольку это часть конвейерной цепочки, я бы хотел иметь возможность указать, каким расширениям он соответствует во время выполнения (без жесткого кодирования). Если find просто не может этого сделать, однострочный perl (или аналогичный) подойдет.

Редактировать: Ответ, который я в конце концов придумал, включает в себя все виды дерьма, а также немного длинен, поэтому я опубликовал его как ответ на первоначальный зуд, который я пытался вычеркнуть. Не стесняйтесь взломать это, если у вас есть лучшие решения.

Ответы [ 11 ]

0 голосов
/ 18 июня 2014

Работает в оболочке AIX korn.

find *.cbl *.dms -prune -type f -mtime -1

Это ищет *.cbl или *.dms, которым 1 день, только в текущем каталоге, пропуская подкаталоги.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...