4

Я ищу файлы в Linux и могу выполнить команду для поиска одного типа формата, например *.jpg но хотел бы найти все файлы с *.jpg и *.css в одной команде.

3 ответа3

9
 find -name "*.jpg" -o -name "*.css"
4

Существует вариант с регулярным выражением:

find -regex ".*\.\(css\|jpg\)" 

Он короче и позволяет избежать ошибок в сочетании с версиями -o:

find ./ -name "*.jpg" -o -name "*.css" -ls 

Здесь ls адаптирован только ко второму шаблону. Вы можете избежать этого с

find ./ \( -name "*.jpg" -o -name "*.css" \) -ls 

но это становится немного загадочным тоже.

Очень быстрый поиск по всей вашей системе в update-db-index - это locate, который тоже знает регулярные выражения, но не находит ультра свежие файлы:

locate -r "Frame.\(scal\|jav\)a"
2

Кроме того, вы можете ввести:

find -name "*.jpg" -or -name "*.css" 

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