2016-01-08 82 views
0

echo ls -l -a/| xargs sh -c如何将参数传递给xargs

如何使上述命令有效?

只列出当前目录

似乎只有LS被传递到xargs的

echo '"ls -l -a /"' | xargs sh -c会的工作,虽然,但我得到的输入没有“”

回答

0

-c标志sh只接受一个而xargs则将参数分割为空白 - 这就是为什么双引号可以工作(一个级别使其成为shell的一个单词,一个用于xargs)。

如果使用-0null参数xargs您的具体情况将工作:

 
echo ls -l -a/| xargs -0 sh -c 
+1

其他:

ls -d */ | xargs -n1 -I {} /bin/bash -c ' echo {}; ls -l {}; ' 

您可以自定义字符串替换{}选项:'echo ls -l -a/| xargs -I'{}'sh -c“{}”' – anishsane