Estou tentando atualizar o registro de data e hora para o horário atual em todos os arquivos xml no meu diretório (recursivamente). Estou usando o Mac OSX 10.8.5.
Em cerca de 300.000 arquivos, o seguinte echo
comando leva 10 segundos :
for file in `find . -name "*.xml"`; do echo >> $file; done
No entanto, o touch
comando a seguir leva 10 minutos ! :
for file in `find . -name "*.xml"`; do touch $file; done
Por que o eco é muito mais rápido do que o toque aqui?
touch `find . -name "*.xml"`
seria ainda mais rápido do que os dois itens acima?
>>$file
touch
tantas vezes? find . -name '*.xml' -print0 | xargs -0 touch
invoca touch
muito menos vezes (possivelmente apenas uma vez). Funciona em Linux, deve trabalhar no OS X.
echo >> $file
arquivo anexará uma nova linha$file
e, portanto, a modificará. Presumo que será o mesmo para o OS / X. Se você não quiser isso, useecho -n >> $file
.