-false
идея является ключом, по моему скромному мнению. Я просто добавляю к нему:
find . -false $(echo "-o -name *."{sh,pl,sql})
Вы просто заключаете все в кавычки, чтобы заставить удар повторить целый шаблон, включая -o -name
, и затем "повредите" группировку, сделанную заключением в кавычки путем возврата его из подоболочки. Проблема с этим подходом состоит в том, что кавычки в шаблоне не будут работать.
Править: См. комментарий Michał Šrajer для другой ловушки этого решения. Обратите внимание, что Вы не можете только поместить обратную косую черту перед звездой: замена команды возвращает любого a *
, который будет расширен, или a \*
, который будет передан как есть для нахождения (!). По крайней мере, это - то, как мой локальный удар работает.
Это является лучшим, я могу сделать:
(GLOBIGNORE='*:.*'; find . \( -false $(echo "-o -name *."{sh,pl,sql,xml}) \) -print)
Удача :)
Btw, если Вы не собираетесь добавлять больше параметров к find
, конечно, просто используйте xargs
; в этом случае это работает отлично с кавычками и всем:
echo "-o -name *."{sh,pl,sql} | xargs find . -false
Fedora архивирует их старые версии по archive.fedoraproject.org. Так, для F16 попробуйте это (установите DVD - выбирают соответствующий каталог для Вашей архитектуры), или там (живые CD).