यदि आपका rename
समर्थन नहीं करता है -N
, तो आप ऐसा कुछ कर सकते हैं:
ls -1 -c | xargs rename -n 's/.*/our $i; sprintf("%04d.jpg", $i++)/e'
संपादित करें किसी दिए गए नंबर से शुरू करने के लिए, आप नीचे दिए गए (कुछ बदसूरत दिखने वाले) कोड का उपयोग कर सकते हैं, बस 123 को अपनी इच्छित संख्या से बदल दें:
ls -1 -c | xargs rename -n 's/.*/our $i; if(!$i) { $i=123; } sprintf("%04d.jpg", $i++)/e'
यह क्रिएशन टाइम के हिसाब से फाइलों को सूचीबद्ध करता है (सबसे पहले नया, -r
ls को रिवर्स सॉर्ट में जोड़ें ), फिर फाइलों की इस सूची को नाम बदलने के लिए भेजता है। नाम बदलने और काउंटर बढ़ाने के लिए regex में पर्ल कोड का उपयोग करता है।
हालाँकि, यदि आप EXEG जानकारी के साथ JPEG छवियों के साथ काम कर रहे हैं, तो मैं सुझाऊंगा exiftool
यह " रिनेमिंग एग्जाम्स " के तहत, एक्सफ़ॉलिट डॉक्यूमेंटेशन से है
exiftool '-FileName<CreateDate' -d %Y%m%d_%H%M%S%%-c.%%e dir
Rename all images in "dir" according to the "CreateDate" date and time, adding a copy number with leading '-' if the file already exists ("%-c"), and
preserving the original file extension (%e). Note the extra '%' necessary to escape the filename codes (%c and %e) in the date format string.