2

假设您打开两个您搜索的目录,ls -Q并且grep

$ 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"

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

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

4

1 回答 1

5

xargs认为引号和反斜杠是特殊的。如果您希望它发出引号,则需要转义这些引号。将grep输出传递sed给以为您转义引号:

$ ls -Q | grep example | sed 's/"/\\"/g' | xargs echo
"example 1" "example 2"
于 2013-07-04T10:59:24.487 回答