मैं अपनी निर्देशिका (पुनरावर्ती) में सभी 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।