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