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
gls
dependendo de como ele foi instalado em seu sistema) ou, se seu shell permitir, -
Definindo
ls
como uma função (function ls { gls "$@"; }; export -f ls
no bash) e usando o GNU paralelo em vez de xargs (parallel -j1
se você quiser usar uma única CPU).