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.
findmi 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).