Какой правильный синтаксис для:
find . -type f -name \*.\(shtml\|css\)
Это работает, но не элегантно:
find . -type f -name \*.shtml > f.txt && find . -type f -name \*.css >> f.txt
Как сделать то же самое, но с меньшим количеством нажатий клавиш?
bash
find
filenames
file-extension
Дейв Джарвис
источник
источник
). Second, the parentheses need to go around whole ‘primaries’ (the open parenthesis needs to be before
-name`, но не между ним и его« операндом »).Вот один из способов сделать вашу первую версию:
источник
Вам нужно заключить в скобки, чтобы включить только файлы:
Бонус : это POSIX-совместимый синтаксис.
источник
Я часто в конечном итоге использую egrep, или более длинные каналы, или perl для еще более сложных фильтров:
Это может быть несколько менее эффективно, но это обычно не проблема, а для более сложных вещей, как правило, легче создавать и модифицировать.
Стандартное предостережение относится к тому, чтобы не использовать это для файлов со странными именами файлов (например, содержащих переводы строки).
источник