मैं अपनी निर्देशिका (पुनरावर्ती) में सभी xml फ़ाइलों पर वर्तमान समय में टाइमस्टैम्प को अद्यतन करने का प्रयास कर रहा हूं। मैं मैक OSX 10.8.5 का उपयोग कर रहा हूं।
लगभग 300,000 फ़ाइलों पर, निम्न echo
कमांड में 10 सेकंड लगते हैं :
for file in `find . -name "*.xml"`; do echo >> $file; done
हालाँकि, निम्न touch
आदेश में 10 मिनट लगते हैं ! :
for file in `find . -name "*.xml"`; do touch $file; done
यहाँ स्पर्श की तुलना में गूंज इतनी तेज़ क्यों है?
touch `find . -name "*.xml"`
ऊपर के दोनों से भी तेज नहीं होगा ?
>>$file
touch
सभी में इतनी बार क्यों आमंत्रित किया गया है? बहुत कम बार find . -name '*.xml' -print0 | xargs -0 touch
आक्रमण करता है touch
(संभवतः केवल एक बार)। लिनक्स पर काम करता है, ओएस एक्स पर काम करना चाहिए
echo >> $file
से एक नई लाइन संलग्न करेगा$file
और इसे संशोधित करेगा। मुझे लगता है कि यह ओएस / एक्स के लिए समान होगा। यदि आप ऐसा नहीं चाहते हैं, तो उपयोग करेंecho -n >> $file
।