En mi aplicación web, renderizo páginas usando script PHP, y luego genero archivos HTML estáticos de ellas. El HTML estático se sirve a los usuarios para acelerar el rendimiento. Los archivos HTML se vuelven obsoletos y deben borrarse.Que es más rápido, 'find -exec' o 'find | xargs -0 '?
Estoy debatiendo entre dos formas de escribir el guión de desalojo.
El primero es el uso de un único comando find, como
find /var/www/cache -type f -mmin +10 -exec rm \{} \;
La segunda forma es mediante la canalización a través xargs, algo así como
find /var/www/cache -type f -mmin +10 -print0 | xargs -0 rm
La primera forma invoca rm
para cada archivo que encuentra, mientras que la segunda forma simplemente envía todos los nombres de archivo a un solo rm
(pero la lista de archivos puede ser muy larga).
¿Qué forma sería más rápida?
En mi caso, el directorio de caché se comparte entre unos pocos servidores web, por lo que todo esto se hace a través de NFS, si eso es importante para este problema.
Creo que xargs generará automáticamente (sin -l) varios procesos si el número de argumentos es mayor que el máximo del shell. – MatthieuP
Gracias. No sabía que Xargs puede hacer eso. – yhager