find
не волнует, если в именах ваших файлов есть пробелы. Это не твоя проблема.
Если вы на самом деле называете его так, как напечатано в вашем вопросе (find -iname *.xxx
), то проблема в том, что вам нужно заключить в кавычки шаблон имени файла, чтобы защитить его от расширения оболочки: find -iname '*.xxx'
. Обратите внимание на кавычки вокруг шаблона; они необходимы.
В противном случае проблема, скорее всего, заключается в том, как вы обрабатываете возвращаемые имена файлов. Например, это не сработает:
for f in `find -iname '*.xxx'`; do
echo "file: $f"
done
вы увидите, что оператор backtick фактически разделяется на пробелы (или, собственно, $IFS
), и вы получите два «файла»: «aaa» и «bbb.xxx».