Estoy tratando de actualizar la marca de tiempo a la hora actual en todos los archivos xml en mi directorio (recursivamente). Estoy usando Mac OSX 10.8.5.
En aproximadamente 300,000 archivos, el siguiente echo
comando tarda 10 segundos :
for file in `find . -name "*.xml"`; do echo >> $file; done
Sin embargo, el siguiente touch
comando tarda 10 minutos . :
for file in `find . -name "*.xml"`; do touch $file; done
¿Por qué el eco es mucho más rápido que tocar aquí?
touch `find . -name "*.xml"`
incluso más rápido que los dos anteriores?
>>$file
touch
por qué invocar tantas veces? find . -name '*.xml' -print0 | xargs -0 touch
invoca touch
muchas menos veces (posiblemente solo una vez). Funciona en Linux, debería funcionar en OS X.
echo >> $file
agregará una nueva línea$file
y, por lo tanto, la modificará. Supongo que será lo mismo para OS / X. Si no quieres eso, úsaloecho -n >> $file
.