फ़ाइलों के एक समूह का नाम बदलने के लिए कैसे उनके नाम में एक विंडोज फ़ाइल पथ जैसा दिखता है


9

मुझे फाइल का एक गुच्छा मिला जिसमें फ़ाइल नाम गड़बड़ था। सभी फ़ाइल नामों में वही शुरुआत होती है जो विंडोज़ फ़ाइल निर्देशिकाओं में दिखाई देती है। समस्या यह है कि 700+ फाइलें हैं और मैं वास्तव में नहीं जाना चाहता और मैन्युअल रूप से उन सभी का नाम बदल रहा हूं। ये फ़ाइल नामों के उदाहरण हैं (नोट: इनमें से कोई भी फ़ाइल निर्देशिका नहीं है):

G:some\really\long\file\path\then\the\name1.jpg
G:some\really\long\file\path\then\the\name2.png
G:some\really\long\file\path\then\the\filename.txt
G:some\really\long\file\path\then\the\file_name.mov
...

महत्वपूर्ण बात यह है कि प्रत्येक फ़ाइल G:some\really\long\file\path\then\the\फ़ाइल नाम से पहले है जो मुझे पसंद है।

इसलिए मैं चाहूंगा कि उपरोक्त फाइलें इस तरह दिखें:

name1.jpg
name2.png
filename.txt
file_name.mov

मैंने renameकमांड की कोशिश की है और सफल नहीं था। मैं अभी भी लिनक्स के साथ नया हूं और वास्तव में इस बारे में सुनिश्चित नहीं हूं कि इसके बारे में कैसे जाना जाए या वास्तव में Google को क्या करना है। किसी भी सहायता की सराहना की जाएगी।

जवाबों:


18

मैंने अभी पिछले बैकस्लैश तक सब कुछ हटा दिया rename

$ rename -n 's/.*\\//' G*
rename(G:some\really\long\file\path\then\the\file_name.mov, file_name.mov)
rename(G:some\really\long\file\path\then\the\filename.txt, filename.txt)
rename(G:some\really\long\file\path\then\the\name1.jpg, name1.jpg)
rename(G:some\really\long\file\path\then\the\name2.png, name2.png)

-nवास्तव में फ़ाइलों का नाम बदलने के लिए परीक्षण के बाद निकालें ।

टिप्पणियाँ

  • -n कुछ मत करो, बस जो बदल जाएगा उसे प्रिंट करो
  • s/old/newके oldसाथ बदलेंnew
  • .* किसी भी वर्ण की कोई भी संख्या
  • \\ पहला बैकलश दूसरा बचना है।
  • चूंकि रेगीक्स लालची हैं इसलिए यह अभिव्यक्ति .*\\पूर्ववर्ती बैकस्लैश को भी खा जाती है।
  • चूंकि पिछले दो सीमांकक //खाली हैं, खोज भाग में मिलान की गई सभी चीज़ों को हटा दिया गया है

क्या मुझे केवल पहली पंक्ति की आवश्यकता है, या क्या मुझे हर फ़ाइल के लिए ऐसा करने की आवश्यकता है?
किंगकोबरा 1986

आपको बस पहली पंक्ति की आवश्यकता है @ Kingcobra1986 अन्य बस आउटपुट हैं। *सभी फ़ाइलों से मेल खाता है, लेकिन मुझे G*इसे करने के लिए बदल दिया है - तो अब यह Gवर्तमान निर्देशिका में शुरू होने वाली सभी फ़ाइलों से मेल खाता है और उन सभी पर एक साथ काम करेगा। यदि वे कई निर्देशिकाओं में हैं, तो हम विभिन्न तरीकों से भी निपट सकते हैं
Zanna

वह काम किया। क्या आप बता सकते हैं कि उस पंक्ति में वास्तव में क्या होता है?
किंगकोबरा 1986

1
@ Kingcobra1986 क्षमा करें, मैंने नोट जोड़े। आशा है कि यह स्पष्ट है, यदि नहीं, तो कृपया और अधिक पूछने के लिए स्वतंत्र महसूस करें!
ज़न्ना

हा, मुझे .*\\ लालची के बाद से उपयोग करने का विचार पसंद है.*
ज़ियाज़िस

10

आप शेल पैरामीटर विस्तारbash का उपयोग करके शुद्ध रूप से कर सकते हैं ।

${file##*\\}(cut-up-to-last-prefix) फ़ाइल नाम की शुरुआत से अंतिम दर्शन तक सब कुछ स्ट्रिप्स \

for file in *; do
    mv -v "$file" "${file##*\\}";
done

नाम बदलने के परिणाम हैं:

‘G:some\\really\\long\\file\\path\\then\\the\\file_name.mov’ -> ‘file_name.mov’
‘G:some\\really\\long\\file\\path\\then\\the\\filename.txt’ -> ‘filename.txt’
‘G:some\\really\\long\\file\\path\\then\\the\\name1.jpg’ -> ‘name1.jpg’
‘G:some\\really\\long\\file\\path\\then\\the\\name2.png’ -> ‘name2.png’

6

यदि आप GUI समाधान खोज रहे हैं, तो कई थोक नामकरण अनुप्रयोग हैं। मैं थूनर को सुझाव दूंगा , जो कि Xfce के लिए डिफ़ॉल्ट फ़ाइल प्रबंधक है। यह एक आसान थोक नामकरण उपकरण के साथ आता है। आप टर्मिनल में निम्नलिखित कमांड चलाकर थुनर को स्थापित कर सकते हैं:

sudo apt-get install thunar

आप शायद उबंटू सॉफ्टवेयर से भी इंस्टॉल कर पाएंगे।

उपयोगिता का उपयोग कैसे करें

  1. एक बार जब आप थूनर स्थापित कर लेते हैं, तो बल्क का नाम बदलें उपयोगिता लॉन्च करें ।
  2. + आइकन पर क्लिक करें और उन फ़ाइलों को जोड़ें जिनका आप नाम बदलना चाहते हैं।
  3. चयनित फ़ाइलों की सूची के ठीक नीचे ड्रॉप-डाउन बॉक्स पर क्लिक करें और खोज और बदलें चुनें
  4. में के लिए खोज: बॉक्स में प्रवेश G:some\really\long\file\path\then\the\(भाग आप से छुटकारा पाने के लिए चाहते हैं), छोड़ के साथ बदलें: बॉक्स खाली। आपको नए नाम कॉलम में परिवर्तनों का पूर्वावलोकन देखना चाहिए ।
  5. परिवर्तन लागू करने के लिए नाम बदलें बटन पर क्लिक करें।

खोज और प्रतिस्थापन के अलावा यह उपयोगिता निम्नलिखित कार्यों का समर्थन करती है:

  • दिनांक / समय डालें
  • डालें / अधिलेखित करें
  • नंबरिंग
  • वर्ण हटाओ
  • अपरकेस लोअरकेस

वहाँ nautilus के लिए एक नहीं है (मुझे लगता है कि वहाँ है!)। इस उद्देश्य के लिए एक नया फ़ाइल ब्राउज़र स्थापित करने का सुझाव देने के बजाय अधिक लगता है।
ज़न्ना

@Zanna v3.22 में एक है, लेकिन मुझे लगता है कि अभी भी उबंटू रेपो में उपलब्ध नहीं है।
पोम्स्की

2
थुनर काफी उपयोगी है और अन्य फ़ाइल ब्राउज़रों के साथ अच्छी तरह से मिलकर लगता है, इसलिए मुझे लगता है कि इस उद्देश्य के लिए इसे स्थापित करना सार्थक हो सकता है। लेकिन क्या आप इस जवाब का विस्तार कर सकते हैं कि थुनेर में थोक नामकरण कैसे किया जाए?
एलिया कगन

1
@EliahKagan और यह हल्के भी
pomsky

अच्छी तरह से किया है, अब मैं उत्थान कर सकता हूं (मुझे एक ज़ुबंटू मिला है मैं इसे बहुत में भी परीक्षण कर सकता हूं :))
ज़ना
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.