Nella mia applicazione Web eseguo il rendering di pagine utilizzando lo script PHP e quindi generi file HTML statici. L'HTML statico viene offerto agli utenti per velocizzare le prestazioni. Alla fine i file HTML diventano obsoleti e devono essere eliminati.Quale è più veloce, "trova -exec" o "trova | xargs -0 '?
Sto discutendo tra due modi per scrivere lo script di sfratto.
Il primo utilizza un unico comando find, come
find /var/www/cache -type f -mmin +10 -exec rm \{} \;
La seconda forma è convogliando attraverso xargs, qualcosa come
find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm
La prima forma invoca rm
per ogni file che trova, mentre il secondo modulo invia semplicemente tutti i nomi dei file a un singolo rm
(ma l'elenco dei file potrebbe essere molto lungo).
Quale forma sarebbe più veloce?
Nel mio caso, la directory della cache è condivisa tra alcuni server Web, quindi questo è tutto fatto su NFS, se questo è importante per questo problema.
Penso che xargs genererà automaticamente (senza -l) diversi processi se il numero di argomenti è maggiore del massimo di shell. – MatthieuP
Grazie. Non sapevo che xargs potesse farlo. – yhager