2016-01-08 78 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