Desde solo su caparazón interactivo sabe sobre alias, ¿por qué no ejecuta el alias sin sobrescribirlo a través del xargs
?
find . -iname '.#*' -print0 | while read -r -d '' i; do foobar "$i"; done
Si está seguro de que sus nombres de archivo no tienen nuevas líneas en ellas (ick, ¿por qué no?), Puede simplificar esto a
find . -iname '.#*' -print | while read -r i; do foobar "$i"; done
o incluso sólo find -iname '.#*' | ...
, ya que la el directorio predeterminado es .
y la acción predeterminada es -print
.
una alternativa más:
IFS=$'\n'; for i in `find -iname '.#*'`; do foobar "$i"; done
Bash diciendo que las palabras son solamente dividida en saltos de línea (por defecto: IFS=$' \t\n'
). Sin embargo, debes tener cuidado con esto; algunos scripts no soportan bien un $IFS
modificado.
Esta es una de las razones por las que crear secuencias de comandos en mi carpeta ~/bin en lugar de creando alias de bash. De esta forma, puedo usar mis alias desde cualquier shell: BASH, ZSH, IPYTHON o FISH. – Yoo
Aquí hay una pregunta similar (aunque no idéntica): http: // stackoverflow.com/questions/979453/how-can-i-use-aliased-commands-with-xargs –