O comando xargs só é capaz de executar comandos, não aliases. O GNU paralelo, no entanto, é capaz de executar funções:
The command must be an executable, a script, a composed
command, or a function. If it is a function you need to export
-f the function first. An alias will, however, not work (see
why http://www.perlmonks.org/index.pl?node_id=484296).
Então, eu recomendo:
-
Dando aos xargs o caminho completo para a versão do ls que você deseja usar (ou um nome não ambíguo, talvez
glsdependendo de como ele foi instalado em seu sistema) ou, se seu shell permitir, -
Definindo
lscomo uma função (function ls { gls "$@"; }; export -f lsno bash) e usando o GNU paralelo em vez de xargs (parallel -j1se você quiser usar uma única CPU).