Saya mencoba memperbarui stempel waktu ke waktu saat ini di semua file xml dalam direktori saya (secara rekursif). Saya menggunakan Mac OSX 10.8.5.
Pada sekitar 300.000 file, echoperintah berikut ini membutuhkan waktu 10 detik :
for file in `find . -name "*.xml"`; do echo >> $file; done
Namun, touchperintah berikut ini memakan waktu 10 menit ! :
for file in `find . -name "*.xml"`; do touch $file; done
Mengapa gema jauh lebih cepat daripada sentuhan di sini?
touch `find . -name "*.xml"` akan lebih cepat dari kedua hal di atas?
>>$file
touchberkali-kali? find . -name '*.xml' -print0 | xargs -0 touchmeminta waktu yang touchjauh lebih sedikit (mungkin hanya sekali). Bekerja di Linux, harus bekerja pada OS X.
echo >> $fileakan ditambahkan baris baru$filedan karenanya memodifikasinya. Saya menganggap itu akan sama untuk OS / X. Jika Anda tidak menginginkannya, gunakanecho -n >> $file.