Befehl finden mit \; \+ und +

Befehl finden mit \; \+ und +

Ich habe die folgenden Suchbefehle gesehen und wundere mich über den Unterschied zwischen ihnen.

find . -exec COMMAND {} \;
find . -exec COMMAND {} \+
find . -exec COMMAND {} +

Antwort1

Es gibt zwei Syntaxen für „Find Exec“.

find . -exec [cmd] {} \;

{} Ist ein Platzhalter für das von find gefundene Ergebnis

; Bestimmt, dass für jedes gefundene Ergebnis der Befehl cmd einmal mit dem gefundenen Ergebnis ausgeführt wird.

Die Ausführung erfolgt wie folgt: cmd result1; cmd result2; ...; cmd result N

find . -exec [cmd] {} \+

{} Ist ein Platzhalter für das von find gefundene Ergebnis

+ Gibt an, dass für alle gefundenen Ergebnisse der Befehl cmd mit allen gefundenen Ergebnissen ausgeführt wird.

Die Ausführung erfolgt wie folgt: cmd result1 result2 ... result N

wann wir find exec verwenden sollten; außer +

Das von -exec ausgeführte Tool akzeptiert nicht mehrere Dateien als Argument

Das Ausführen des Tools für so viele Dateien gleichzeitig verbraucht möglicherweise zu viel Speicher

Wir möchten so schnell wie möglich mit den ersten Ergebnissen beginnen, auch wenn es länger dauern wird, bis alle Ergebnisse vorliegen.

verwandte Informationen