为什么ls -1 | xargs -I {} echo -n {} {} {}不按正确顺序打印?

时间:2012-07-26 18:20:23

标签: bash printing xargs ls

Ubuntu$ ls -1

file1 file2

Ubuntu$ ls -1 | xargs -I{} echo -n {}{}{}

file1file1file1file2file2file2

为什么我不按此顺序获得结果?:file1file2file1file2file1fil2

1 个答案:

答案 0 :(得分:4)

因为xargs为其输入中的每个单词执行命令(echo)。当然{}每次都是一样的。即使你重复多次。

您可以使用for

执行您想要的操作
ls=$(ls -1)
for i in {1..3}
do
  echo $ls
done

使用示例:

$ 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