Ich versuche, den Zeitstempel für alle XML-Dateien in meinem Verzeichnis (rekursiv) auf die aktuelle Zeit zu aktualisieren. Ich verwende Mac OSX 10.8.5.
Für ungefähr 300.000 Dateien echo
dauert der folgende Befehl 10 Sekunden :
for file in `find . -name "*.xml"`; do echo >> $file; done
Der folgende touch
Befehl dauert jedoch 10 Minuten ! :
for file in `find . -name "*.xml"`; do touch $file; done
Warum ist das Echo hier so viel schneller als die Berührung?
touch `find . -name "*.xml"`
noch schneller als die beiden oben?
>>$file
touch
so oft aufrufen ? find . -name '*.xml' -print0 | xargs -0 touch
ruft touch
viel seltener auf (möglicherweise nur einmal). Funktioniert unter Linux, sollte unter OS X funktionieren.
echo >> $file
wird eine neue Zeile angehängt$file
und somit geändert . Ich gehe davon aus, dass es für OS / X dasselbe sein wird. Wenn Sie das nicht wollen, verwenden Sieecho -n >> $file
.