为什么xargs -t不显示引号?

时间:2013-07-04 10:32:14

标签: quotes xargs

假设您打开了由ls -Qgrep

搜索的两个目录
$ mkdir "example 1"
$ mkdir "example 2"
$ ls -Q | grep example | xargs -t nautilus

然后选项-t显示nautilus example 1 example 2,不带引号。但是,文件夹已正确打开。

$ ls -Q | grep example | xargs -t echo
echo example 1 example 2 
example 1 example 2

为了完全完整,让我展示xargs的输入:

$ ls -Q | grep example
"example 1"
"example 2"

所以那里的引号......

这里发生了什么?报价在哪里?

1 个答案:

答案 0 :(得分:2)

xargs认为引号和反斜杠是特殊的。如果你想要它发出引号,你需要逃避它们。将grep输出传递给sed以转义引号:

$ ls -Q | grep example | sed 's/"/\\"/g' | xargs echo
"example 1" "example 2"