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

Ann*_*sum 3 quotes xargs

假设您打开两个目录,并通过ls -Q和进行搜索grep

$ mkdir "example 1"
$ mkdir "example 2"
$ ls -Q | grep example | xargs -t nautilus
Run Code Online (Sandbox Code Playgroud)

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

$ ls -Q | grep example | xargs -t echo
echo example 1 example 2 
example 1 example 2
Run Code Online (Sandbox Code Playgroud)

为了完整起见,让我展示以下输入xargs

$ ls -Q | grep example
"example 1"
"example 2"
Run Code Online (Sandbox Code Playgroud)

所以那里的引号...

这里发生了什么?引号去哪儿了?

dev*_*ull 7

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

$ ls -Q | grep example | sed 's/"/\\"/g' | xargs echo
"example 1" "example 2"
Run Code Online (Sandbox Code Playgroud)