Поскольку псевдонимы знает только ваша интерактивная оболочка, почему бы просто не запустить псевдоним, не отключившись через xargs
?
find . -iname '.#*' -print0 | while read -r -d '' i; do foobar "$i"; done
Если вы уверены, что в именах ваших файлов нет символов новой строки (ick, зачем они?), Вы можете упростить это до
find . -iname '.#*' -print | while read -r i; do foobar "$i"; done
или даже просто find -iname '.#*' | ...
, поскольку каталог по умолчанию .
и действие по умолчанию -print
.
Еще одна альтернатива:
IFS=$'\n'; for i in `find -iname '.#*'`; do foobar "$i"; done
говорит Bash, что слова разделяются только на новые строки (по умолчанию: IFS=$' \t\n'
). Вы должны быть осторожны с этим, хотя; некоторые сценарии плохо справляются с изменённым $IFS
.