Por que LS -1 | xargs -i {} echo -n {} {} {} não imprime na ordem certa?
Pergunta
Ubuntu$ ls -1
arquivo1 arquivo2
Ubuntu$ ls -1 | xargs -I{} echo -n {}{}{}
arquivo1arquivo1arquivo1arquivo2arquivo2arquivo2
Por que não obtenho o resultado nesta ordem?:arquivo1arquivo2arquivo1arquivo2arquivo1fil2
Solução
Porque xargs
executa o comando (echo
) para cada palavra em sua entrada.E claro {}
é sempre o mesmo.Mesmo se você repetir muitas vezes.
Você pode fazer o que quiser usando for
:
ls=$(ls -1)
for i in {1..3}
do
echo $ls
done
Exemplo de uso:
$ mkdir d ; cd d
<d>$ touch file1 file2 file3
<d>$ ls=$(ls -1)
<d>$ for i in {1..3}
> do
> echo $ls
> done
file1 file2 file3
file1 file2 file3
file1 file2 file3
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow