Cosa c'è +
dentro find /path/ -exec command '{}' +
? al contrario difind /path/ -exec command '{}' \;
Cosa c'è +
dentro find /path/ -exec command '{}' +
? al contrario difind /path/ -exec command '{}' \;
Risposte:
'+' Crea una grande riga di comando da tutti i file trovati per ridurre al minimo il numero di comandi da eseguire.
Dato il caso in cui un comando find trova quattro file.
find . -type f -exec command '{}' \;
produrrebbe
command file1
command file2
command file3
command file4
D'altro canto
find . -type f -exec command '{}' \+
produce
command file1 file2 file3 file4
Dalla pagina man:
comando -exec {} +
Questa variante dell'azione -exec esegue il comando specificato sui file selezionati, ma la riga di comando viene creata aggiungendo alla fine ciascun nome di file selezionato; il numero totale di invocazioni del comando sarà molto inferiore al numero di file corrispondenti. La riga di comando è costruita nello stesso modo in cui xargs costruisce le sue righe di comando. Nel comando è consentita solo un'istanza di `{} '. Il comando viene eseguito nella directory iniziale.
find
mi dà un semi.
xargs
,-exec … {} +
fa lo stesso-print | xargs …
, ma senza i problemi di quotazione (-print0 | xargs -0
è un altro modo, ma è meno portabile).