echo ls -l -a / | xargs sh -c
如何使上述命令工作?
它只列出当前目录
似乎只有ls被传递给xargs
echo '"ls -l -a /"' | xargs sh -c
虽然会工作,但我得到的输入没有""
资料来源:http://www.unixmantra.com/2013/12/xargs-all-in-one-tutorial-guide.html
如@darklion所述,-I表示参数列表标记,-c表示在每个xargs输入行上运行的bash命令.
只需将输入打印到xargs:
ls -d */ | xargs echo #One at a time ls -d */ | xargs -n1 echo
对每个输入的更多操作:
ls -d */ | xargs -n1 -I {} /bin/bash -c ' echo {}; ls -l {}; '
您可以将自定义字符串替换为{}:
ls -d */ | xargs -n1 -I file /bin/bash -c ' echo file; ls -l file; '