कैसे करें: अंडरस्कोर के साथ फ़ाइल नामों में रिक्त स्थान बदलें

शैल लिनक्स

यूनिक्स वातावरण में आप कमांड इंटरप्रेटर के साथ बहुत काम करते हैं, वास्तव में, कई प्रणालियों में डेस्कटॉप वातावरण भी स्थापित नहीं होता है। इसलिएलिनक्स में आप आमतौर पर टर्मिनल से भी बहुत काम करते हैं. फ़ाइल और निर्देशिका नामों के साथ काम करते समय कभी-कभी यह मुश्किल हो जाता है जब उनके नामों में रिक्त स्थान होते हैं। यह जानना कि इन छोटी-मोटी समस्याओं से कैसे छुटकारा पाया जाए, कोई समस्या नहीं होगी, लेकिन यह सच है कि यह तब अधिक आरामदायक होता है जब उनके पास वे जगहें न हों...

यदि आप नहीं जानते टर्मिनल से रिक्त स्थान वाले नामों का उपयोग कैसे करें या यदि आप इन रिक्त स्थानों को आसानी से हटाना चाहते हैं, इस लेख में आप जीएनयू/लिनक्स में दैनिक आधार पर काम करते समय उपयोगकर्ता अनुभव को यथासंभव आरामदायक बनाने के लिए आवश्यक सभी चीजें सीखेंगे। अब से, नामस्थान आपके लिए बाधा नहीं बनेंगे...

रिक्त स्थान के साथ कैसे काम करें

लिनक्स नामस्थान

नेमस्पेस के साथ काम करना आसान है, इसलिए सबसे पहले मैं यह दिखाने जा रहा हूं कि आप निर्देशिकाओं या फ़ाइलों का उपयोग कैसे कर सकते हैं उनके नाम में रिक्त स्थान. इस प्रकार, जिन लोगों को इससे समस्या है वे इसका उपयोग करना सीख सकेंगे और रिक्त स्थान वाले नामों से टकराने का डर खत्म हो जाएगा।

  • पैरा इंगित करें कि नाम में एक स्थान है, आप स्लैश या बैकस्लैश, यानी \ का उपयोग कर सकते हैं। उदाहरण के लिए, यदि आप जो नाम टाइप करने का प्रयास कर रहे हैं वह वही है जो आप छवि "आरआईएससी-वी डॉक्स" में देखते हैं, तो आप "आरआईएससी-वी\ डॉक्स" (बिना उद्धरण के) टाइप कर सकते हैं। इस तरह आप बैश को बता रहे हैं कि यह एक स्पेस है न कि आपने उस कमांड के लिए एक स्पेस द्वारा अलग किए गए कई पैरामीटर दर्ज किए हैं।
  • आप भी इस्तेमाल कर सकते हैं डबल उद्धरण "" नाम को रिक्त स्थान के साथ संलग्न करना, शेल को यह बताना कि वे अलग-अलग पैरामीटर नहीं हैं, बल्कि एक ही नाम हैं। उदाहरण के लिए, उपरोक्त सीडी उदाहरण में, यदि आप रिक्त स्थान के साथ उस निर्देशिका में जाना चाहते हैं तो आप इसका उपयोग कर सकते हैं:
cd "RISC-V docs"

  • एक और तरकीब नाम के पहले कुछ अक्षर टाइप करना शुरू करना है और टैब कुंजी (कैप्स लॉक के ठीक ऊपर वाली) दबाना है। इस तरह नाम स्वतः पूर्ण हो जाता है। यह तब काम नहीं करेगा जब कई नाम एक जैसे शुरू होते हों, उदाहरण के लिए, यदि कोई "आरआईएससी-वी डॉक्स" है और "आरआईएससी-वी आईएसए" काम नहीं करेगा। हां, यह "आरआईएससी-वी डॉक्स" और "आरआईएससी-आई डॉक्स" के मामले में काम करेगा, क्योंकि जैसे ही आप चरित्र I में प्रवेश करेंगे, उसे चरित्र का नाम पता चल जाएगा...

अभी इसे हो सकता है कि आपको यह व्यावहारिक न लगे या आपको यह पसंद न आए जब भी आप रिक्त स्थान के साथ काम करें तो आपको ऐसा करते रहना होगा। इसलिए, यदि आप उन्हें खत्म करना चाहते हैं, तो आप निम्नलिखित अनुभाग पढ़ सकते हैं…

रिक्त स्थान को कैसे बदलें

रिक्त स्थान को अंडरस्कोर लिनक्स से बदलें

यह सच है कि ग्राफ़िकल वातावरण के लिए, रिक्त स्थान वाले नाम फ़ाइलों को नाम देना अधिक आरामदायक और सुखद होते हैं। लेकिन यह टर्मिनल के लिए इतना व्यावहारिक नहीं है। इसलिए, यदि आप पिछले अनुभाग में दिए गए चरणों का पालन नहीं करना चाहते हैं और आप चाहते हैं ख़ुशहाल जगहों से हमेशा-हमेशा के लिए छुटकारा पाएँ, आप इन चरणों का पालन कर सकते हैं:

  • उस निर्देशिका पर जाएँ जहाँ रिक्त स्थान वाले नाम स्थित हैं जिसे आप किसी भी पात्र से बदलना चाहते हैं। इस मामले में मैंने एक अंडरस्कोर का उपयोग किया है, लेकिन आप उस प्रतीक को किसी अन्य के लिए प्रतिस्थापित कर सकते हैं, आपको बस कमांड को संशोधित करना होगा।
  • एक बार निर्देशिका के अंदर, आप इस कमांड का उपयोग कर सकते हैं सभी नामस्थानों को _ में बदल देगा. सावधान रहें, क्योंकि यदि ऐसे नाम हैं जिनमें आप रिक्त स्थान रखना चाहते हैं तो आपको यह विचार करना चाहिए कि यह आदेश उन सभी को बदल देगा:
for file in *; do mv "$file" `echo $file | tr ' ' '_'`; done

  • पैरा एक-एक करके जाओहालाँकि यह व्यावहारिक नहीं है, आप उन मामलों में निम्नलिखित कमांड का उपयोग कर सकते हैं जहाँ आप केवल एक ही नाम के लिए रिक्त स्थान बदलना चाहते हैं और सभी को स्वचालित रूप से नहीं:
mv nombre\ con\ espacios nombre_sin_espacios

  • वैकल्पिक रूप से एक स्क्रिप्ट का उपयोग करें जब भी आप रिक्त स्थान को अंडरस्कोर से बदलना चाहें तो कॉल कर सकते हैं। इसलिए आप इसे हर बार आवश्यकता पड़ने पर ऑर्डर लिखे बिना किसी भी निर्देशिका में चला सकते हैं। इसके लिए आपको अपने पसंदीदा टेक्स्ट एडिटर का उपयोग करना होगा और एक फ़ाइल बनानी होगी, उदाहरण के लिए, spaceskiller.sh, सामग्री को सहेजें, इसे निष्पादन की अनुमति दें, और इसे $PATH पर्यावरण चर (जैसे: /usr/bin) में पाए गए पथों में से एक में डालें और इस प्रकार आपको केवल इसका नाम लागू करना होगा, उस पथ को इंगित करने की आवश्यकता के बिना जहां .sh है। ठीक है, ऐसा कहने के बाद, स्क्रिप्ट की सामग्री निम्नलिखित होगी:
<pre>#!/bin/bash

for f in *
do
  new="${f// /_}"
  if [ "$new" != "$f" ]
  then
    if [ -e "$new" ]
    then
      echo no se renombró \""$f"\" porque \""$new"\" ya existe
    else
      echo renombrando "$f" a "$new"
    mv "$f" "$new"
  fi
fi
done</pre>

यदि आपने स्क्रिप्ट का विकल्प चुना है और आपने इसे $PATH निर्देशिकाओं में से एक में दर्ज किया है, तो हर बार जब आप एक निर्देशिका के अंदर होते हैं और आप रिक्त स्थान को अंडरस्कोर (या किसी अन्य वर्ण यदि आप इसे संशोधित करते हैं) से बदलना चाहते हैं, तो आपको केवल यही करना होगा रन:

./spaceskiller.sh

मुझे आशा है कि मैंने इस ट्यूटोरियल में आपकी मदद की है, आप अपनी टिप्पणी छोड़ सकते हैं किसी भी प्रश्न या योगदान के साथ...


अपनी टिप्पणी दर्ज करें

आपका ईमेल पता प्रकाशित नहीं किया जाएगा। आवश्यक फ़ील्ड के साथ चिह्नित कर रहे हैं *

*

*

  1. डेटा के लिए जिम्मेदार: एबी इंटरनेट नेटवर्क 2008 SL
  2. डेटा का उद्देश्य: नियंत्रण स्पैम, टिप्पणी प्रबंधन।
  3. वैधता: आपकी सहमति
  4. डेटा का संचार: डेटा को कानूनी बाध्यता को छोड़कर तीसरे पक्ष को संचार नहीं किया जाएगा।
  5. डेटा संग्रहण: ऑकेंटस नेटवर्क्स (EU) द्वारा होस्ट किया गया डेटाबेस
  6. अधिकार: किसी भी समय आप अपनी जानकारी को सीमित, पुनर्प्राप्त और हटा सकते हैं।

  1.   एन्ड्रेस कहा

    बहुत बहुत धन्यवाद आपकी स्क्रिप्ट बहुत उपयोगी है