मापदंडों और रिक्त स्थान का उपयोग कर लिनक्स का नाम बदलें?


0

क्या यह संभव है, लिनक्स में, किसी फाइल को बिना स्पेस वाली जगह से किसी चीज को रीनेम करने के लिए?

मुझे पता है कि मैं ऐसा करके निर्देशिकाओं और फ़ाइलों को बना सकता हूं:
mkdir "new dir"और:
touch "new file.txt"

मैं फ़ाइलों का नाम बदलना चाहता हूँ:
imgp0882.jpgकुछ इस तरह से:
20091231 1243 some topic.jpg

और यह एक शेल स्क्रिप्ट में कैसे दिखेगा जो मापदंडों का उपयोग करता है जैसे :?
for i in *.jpg do
rename "$i" "$somepath/$mydate $mytime $mytopic$extension"

थोड़ा पृष्ठभूमि:

  • मैं लिनक्स से (पीसीएलिनक्सओएस 2009.2 का उपयोग करके) नया हूं, विंडोज से आ रहा हूं, और मैंने खुद को अपने कैमरे से फाइलें डाउनलोड करने के लिए थोड़ी सी शेल स्क्रिप्ट लिखी है और फिर डेट और विषय के पैटर्न के अनुसार स्वचालित रूप से उनका नाम बदल दिया। जैसा कि आप अब तक अनुमान लगा सकते हैं, मैं नाम बदलने के बारे में थोड़ा अटक गया हूं।
  • यदि आप मेरी स्क्रिप्ट देखना चाहते हैं, तो यहाँ एक प्रति है
  • मैं jheadइस नामकरण के लिए उपयोग नहीं कर रहा हूं क्योंकि यह केवल JPEG फ़ाइलों के साथ काम करता है लेकिन मैं वीडियो सहित किसी भी मीडिया प्रारूप के लिए एक ही समाधान चाहता हूं।

आपको पता होना चाहिए कि लिनक्स में घूमने और नाम बदलने के संचालन मूल रूप से समतुल्य हैं, और दोनों का उपयोग किया जाता है mv। कहा जाता renameहै कि आदेश कुछ पैटर्न के अनुसार एक बार में फ़ाइलों के पूरे बैच का नाम बदलने के लिए है। इसका उपयोग अधिक जटिल है।
रयान थॉम्पसन

धन्यवाद, यह एक महान टिप्पणी है, क्योंकि यह (डॉस) एक ही डॉस / विंडोज कमांड से बहुत अलग है। जाहिर mvहै रास्ता तय करना है।
तोरन गुंडोफ्टे-ब्रून

जवाबों:


2

हो सकता है कि आपको पूरे गंतव्य पथ पर बस उद्धरण देने की आवश्यकता हो ? उदाहरण के लिए

$ touch test
$ a=one
$ b=two
$ mv "test" "$a $b"
$ ls -la
total 8
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:21  
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:20   
drwxr-xr-x  2 whitequark whitequark 4096 2010-01-27 01:21 .
drwxr-xr-x 80 whitequark whitequark 4096 2010-01-27 01:16 ..
-rw-r--r--  1 whitequark whitequark    0 2010-01-27 01:21 one two

आह, नाम बदलने के बजाय चाल कमान का उपयोग करना एक अच्छी चाल है। मैं देखूंगा कि क्या मैं अपनी स्क्रिप्ट में वह काम कर सकता हूं।
तोरन गुंडोफ्टे-ब्रून

1
renameनियमित अभिव्यक्ति के अनुसार फ़ाइलों के शेयरों का नाम बदलने के लिए उपयोग किया जाता है; यह नाम के बावजूद * nix पर फ़ाइलों का नाम बदलने का एक मानक तरीका नहीं है और न ही एक मानक उपकरण: यह पर्ल द्वारा प्रदान किया गया है। man renameविवरण के लिए देखें। superuser.com/questions/70217/… एक ऐसा प्रश्न है जो आपके लिए प्रत्यक्ष विपरीत है। पहले उत्तर पर ध्यान दें।
श्वेतार्क

2

यदि आप बैश का उपयोग कर रहे हैं, तो अपने स्थान से पीछे हटें:

My\ File\ Name.jpg


तो एक स्क्रिप्ट में यह होगा: $ inputfile का नाम बदलें $ date \ $ time \ topic $ ext? मुझे लगता है कि मैंने कोशिश की थी और यह सिर्फ नाम नहीं बदला, लेकिन एक त्रुटि भी नहीं दी। मैं फिर से कोशिश करूँगा और रिपोर्ट करूँगा।
तोरन गुंडोफ्टे-ब्रून
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.