In vielen Fällen verwende ich die Befehlssubstitution anstelle von xargs
. Zum Beispiel rm $(ls)
ist das gleiche wiels | xargs rm
Was sind wirklich die Unterschiede zwischen ihnen?
Ich denke, einer der Unterschiede ist, dass die Befehlsersetzung in der Subshell ausgeführt wird, während sie xargs
in der aktuellen Shell ausgeführt wird, aber ich bin nicht sicher.
Bitte listen Sie die Unterschiede auf.
xargs
aufgrund der Pipe auch in einer Subshell ausgeführt, sofern Sie dies nicht aktivierenshopt -s lastpipe
. In diesem Fall wird die Pipe in der aktuellen Shell ausgeführt. Ich denke nicht, dass das Ausführen in einer Subshell in diesem Fall ein Problem ist, da Sie keine Variablen ändern.