echo ls -l -a/| xargs sh -c
如何将参数传递给xargs
如何使上述命令有效?
只列出当前目录
似乎只有LS被传递到xargs的
echo '"ls -l -a /"' | xargs sh -c
会的工作,虽然,但我得到的输入没有“”
echo ls -l -a/| xargs sh -c
如何将参数传递给xargs
如何使上述命令有效?
只列出当前目录
似乎只有LS被传递到xargs的
echo '"ls -l -a /"' | xargs sh -c
会的工作,虽然,但我得到的输入没有“”
的-c
标志sh
只接受一个而xargs则将参数分割为空白 - 这就是为什么双引号可以工作(一个级别使其成为shell的一个单词,一个用于xargs)。
如果使用-0
或null
参数xargs
您的具体情况将工作:
echo ls -l -a/| xargs -0 sh -c
来源:http://www.unixmantra.com/2013/12/xargs-all-in-one-tutorial-guide.html由@darklion提到
,-I表示的参数列表标记, -c表示bash命令在xargs的每个输入行上运行。
,只打印输入到xargs的:
ls -d */ | xargs echo
#One at a time
ls -d */ | xargs -n1 echo
更多操作上的每个输入:
ls -d */ | xargs -n1 -I file /bin/bash -c ' echo file; ls -l file; '
其他:
您可以自定义字符串替换{}选项:'echo ls -l -a/| xargs -I'{}'sh -c“{}”' – anishsane