Мне интересно, возможно ли объявить массив типов файлов для поиска с помощью команды find?
Так
fileTypes=(*.omf *.jpeg *.xml *.otf)
find . -name ${fileTypes}
Вместо:
find . -name '*.omf' -o -name '*.jpeg' -o -name '*.xml' -o -name '*.otf'
Я не верю, что это поддерживается изначально командой find, но вы можете перебрать команду find с этим одним вкладышем для достижения желаемой функциональности:
for type in ${fileTypes[@]};do find -name "${type}"; done
Только одно примечание: если вы определяете массив с использованием подстановочных знаков в каталоге, где любые файлы соответствуют шаблону, тогда глобализация выполнит расширение имени файла для файла и поместит это имя файла в ваш массив. Это приведет к тому, что итерация команды find будет выполнять поиск только по этому имени файла, а не по всем файлам с таким расширением. Вы можете избежать этого потенциального падения, определив массив без подстановочных знаков:
fileTypes=(.omf .jpeg .xml .otf)
Затем добавьте подстановочный знак в команду поиска: find -name "*${type}"