2

と で検索する 2 つのディレクトリを開くとしますls -Qgrep

$ mkdir "example 1"
$ mkdir "example 2"
$ ls -Q | grep example | xargs -t nautilus

次に、オプション-tnautilus 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 に答える