यदि आपके पास बनाने के लिए बहुत सारी फाइलें हैं, तो एक बार में एक से अधिक फाइल को "टच" करना सार्थक होगा, ताकि आपको उनमें से प्रत्येक के लिए एक नई प्रक्रिया को अपनाने की जरूरत न पड़े (जो कि कई बार किए जाने में काफी समय लेती है हजार बार)।
विकल्प 1: पैटर्न प्रतिस्थापन + xargs
यह विकल्प touch
एक ही बार में कमांड को कई रास्तों की आपूर्ति करेगा , आमतौर पर कुछ हजार या जो भी सिस्टम एक एकल कमांड लाइन पर फिट हो सकता है।
find "$folder" -mindepth 1 -maxdepth 1 -name '*.png' -print0 |
sed -ze 's/\.png$/.txt/' |
xargs -r0 -- touch --
विकल्प 2: पैरामीटर विस्तार + कमांड आउटपुट पुनर्निर्देशन
यह विकल्प बिल्कुल नहीं चलता है touch
, लेकिन इसके बजाय Bash / Bourne / POSIX शेल सुविधाओं का उपयोग करता है, जिसके लिए सब-प्रक्रियाओं की आवश्यकता नहीं होती है।
for f in "$folder"/*.png; do
: >> "${f%.png}.txt"
done
for filePng in "$folder"/*
औरtouch "$filePng".txt
- नोट करें कि आप उन्हें केवल तभी उद्धृत करेंगे जब एक से अधिक हो$
।