mv
यह एक मूल कमांड लाइन है जिसे एक चीज़ को करने के लिए और इसे अच्छी तरह से करने के लिए डिज़ाइन किया गया है (यूनिक्स दर्शन): मूव फाइल (एस) या निर्देशक (एस) ।
आप हैक कर सकते हैं STDOUT
और STDIN
¹ गंतव्य के लिए उड़ान भरने स्ट्रिंग पर संशोधित करने के लिए है, लेकिन यह सिर्फ है एक स्मार्ट हैक नहीं
नाम बदलें (पर्ल वन)
इसी नाम के अन्य उपकरण हैं जो ऐसा करने में सक्षम हो सकते हैं या नहीं हो सकते हैं, इसलिए सावधान रहें।
जब लोग बात करते हैं rename
, तो हम इस बारे में सोचते हैं, एक नहीं ELF
, कम शक्तिशाली (जादू?)।
यह बुनियादी नहीं है, यह पर्ल है। आप पर्ल के कुछ कार्यों को पास कर सकते हैं, और यह बेहद शक्तिशाली है।
इस उदाहरण पर विचार करें:
आप फ़ाइलों का एक गुच्छा नाम बदलना चाहते हैं
foobar_1.txt
foobar_2.txt
foobar_3.txt
आप sprintf()
इस तरह से अंकों के साथ शून्य को प्रीपेंड कर सकते हैं (regex का उपयोग करके, हे, यह पर्ल है: D):
rename 's/(\d+)/sprintf("%04d", $1)/e' foobar_*.txt
अब आपके पास है :
foobar_0001.txt
foobar_0002.txt
foobar_0003.txt
वास्तव में एक मूल आदेश नहीं है, है ना?
नाम वास्तव में डीआईआर (एस) को स्थानांतरित करने के लिए डिज़ाइन नहीं किया गया है , लेकिन यह ऐसा कर सकता है:
$ mkdir -p /tmp/foo/bar/base
$ touch /tmp/foo/bar/base/file
$ rename 's!/tmp/foo/bar/base/file!/tmp/file!' /tmp/foo/bar/base/file
स्थानांतरित फ़ाइल
/tmp/file
¹ कुछ कोड हम *.stackexchange.*
वेबसाइटों पर देखते हैं
for FILE in `ls *.txt`
do
mv ${FILE} `echo ${FILE} | sed 's/anything_ugly/anything_still_ugly/'`
done
यह जाने का रास्ता नहीं है , यह समतल छोटी गाड़ी है, बस यह समझाने के लिए कि सही समय पर सही उपकरण का उपयोग क्यों किया जाए
type -a rename
और आउटपुट क्या हैंrename --version
?