xargs在Unix中使用应用程序的示例可以是这样的:
ls | xargs echo
Run Code Online (Sandbox Code Playgroud)
这与(假设我有someFile并且someDir/在工作目录中)相同:
echo someFile someDir
Run Code Online (Sandbox Code Playgroud)
所以xargs取其输入并将其放在下一个命令的末尾(这里是echo的结尾).
但有时我想把xargs它的输入放在下一个命令中间的某个地方.
例如:
find . -type f -name "*.cpp" -print | xargs g++ -o outputFile
Run Code Online (Sandbox Code Playgroud)
所以如果我在当前目录中的文件有a.cpp,b.cpp,c.cpp输出将是相同的用命令:
g++ -o outputFile a.cpp b.cpp c.cpp
Run Code Online (Sandbox Code Playgroud)
但是我想要这样的东西:
g++ a.cpp b.cpp c.cpp -o outputFile
Run Code Online (Sandbox Code Playgroud)
有办法吗?
PS:在某些情况下我需要它,因为例如:
i586-mingw32msvc-g++ -o outputFile `pkg-config --cflags --libs gtkmm-2.4` a.cpp b.cpp c.cpp
Run Code Online (Sandbox Code Playgroud)
不起作用,但这个工作正常:
i586-mingw32msvc-g++ a.cpp b.cpp c.cpp -o outputFile `pkg-config --cflags --libs gtkmm-2.4`
Run Code Online (Sandbox Code Playgroud)