बैश स्क्रिप्ट की निर्देशिका खोजने के लिए गाइड

बैश स्क्रिप्ट की निर्देशिका खोजने के लिए गाइड
बैश स्क्रिप्ट की निर्देशिका खोजने के लिए गाइड

आपकी बैश स्क्रिप्ट की निर्देशिका का पता लगाना

कई स्क्रिप्टिंग परिदृश्यों में, उस निर्देशिका को जानना आवश्यक है जहां आपकी बैश स्क्रिप्ट स्थित है। यह ज्ञान आपको स्क्रिप्ट की निर्देशिका में नेविगेट करने और उसमें मौजूद फ़ाइलों पर प्रभावी ढंग से काम करने की अनुमति देता है।

चाहे आप अपनी स्क्रिप्ट का उपयोग किसी अन्य एप्लिकेशन को लॉन्च करने या विशिष्ट फ़ाइलों पर संचालन करने के लिए कर रहे हों, स्क्रिप्ट की निर्देशिका ढूंढना सुचारू और पूर्वानुमानित निष्पादन सुनिश्चित करता है। यह मार्गदर्शिका प्रदर्शित करेगी कि इस कार्य को कैसे पूरा किया जाए।

आज्ञा विवरण
${BASH_SOURCE[0]} बैश में निष्पादित की जा रही स्क्रिप्ट के पूर्ण पथ को संदर्भित करता है।
cd $(dirname ...) वर्तमान निर्देशिका को निर्दिष्ट फ़ाइल या स्क्रिप्ट की मूल निर्देशिका में बदलता है।
pwd वर्तमान कार्यशील निर्देशिका को प्रिंट करता है।
realpath() पायथन में निर्दिष्ट फ़ाइल नाम का विहित पथ लौटाता है।
sys.argv[0] इसमें वह स्क्रिप्ट नाम शामिल है जिसका उपयोग पायथन लिपि को लागू करने के लिए किया गया था।
os.chdir() वर्तमान कार्यशील निर्देशिका को पायथन में निर्दिष्ट पथ में बदलता है।
os.system() पायथन में सबशेल में एक कमांड निष्पादित करता है।
ls -al वर्तमान निर्देशिका में विस्तृत जानकारी के साथ सभी फ़ाइलों और निर्देशिकाओं को सूचीबद्ध करता है।

स्क्रिप्ट निर्देशिका स्थान को समझना

प्रदान की गई स्क्रिप्ट उस निर्देशिका को निर्धारित करने के तरीकों को प्रदर्शित करती है जहां बैश स्क्रिप्ट स्थित है। बैश स्क्रिप्ट उदाहरण में, कमांड ${BASH_SOURCE[0]} जबकि, स्क्रिप्ट का पथ प्राप्त करने के लिए उपयोग किया जाता है cd $(dirname ...) कार्यशील निर्देशिका को स्क्रिप्ट की निर्देशिका में बदल देता है। pwd कमांड वर्तमान कार्यशील निर्देशिका को प्रिंट करता है, जो परिवर्तन की पुष्टि करता है। यह स्क्रिप्ट के स्थान से एप्लिकेशन लॉन्च करने के लिए आवश्यक है, यह सुनिश्चित करते हुए कि सभी ऑपरेशन सही संदर्भ में होते हैं।

पायथन लिपि उदाहरण में, os.path.dirname(os.path.realpath(sys.argv[0])) स्क्रिप्ट की निर्देशिका पुनर्प्राप्त करता है, और os.chdir() कार्यशील निर्देशिका को बदलता है। os.system() कमांड का उपयोग किसी अन्य एप्लिकेशन को निष्पादित करने के लिए किया जाता है। उन्नत बैश स्क्रिप्ट उदाहरण इन तकनीकों का उपयोग करके संयोजन करता है ls -al स्क्रिप्ट की निर्देशिका में फ़ाइलों को सूचीबद्ध करने के लिए। यह दृष्टिकोण उन स्क्रिप्ट्स के लिए उपयोगी है जिन्हें उनके स्थान से संबंधित फ़ाइलों को प्रबंधित या संचालित करने की आवश्यकता होती है।

बैश स्क्रिप्ट की निर्देशिका निर्धारित करें

बैश स्क्रिप्ट उदाहरण

# Method to get the directory of the script
DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"

# Print the directory
echo "The script is located in: $DIR"

# Change to the script's directory
cd "$DIR"

# Execute another application
./application

कार्यशील निर्देशिका को स्क्रिप्ट के स्थान पर बदलना

पायथन स्क्रिप्ट उदाहरण

import os
import sys

def get_script_directory():
    return os.path.dirname(os.path.realpath(sys.argv[0]))

# Get the script's directory
script_dir = get_script_directory()

# Print the directory
print(f"The script is located in: {script_dir}")

# Change to the script's directory
os.chdir(script_dir)

# Execute another application
os.system("./application")

शेल स्क्रिप्ट में स्क्रिप्ट की निर्देशिका का पता लगाना

उन्नत बैश स्क्रिप्ट उदाहरण

#!/bin/bash

# Resolve the directory of the script
SCRIPT_DIR=$(cd $(dirname "${BASH_SOURCE[0]}") && pwd)

# Print the resolved directory
echo "Script directory is: $SCRIPT_DIR"

# Move to the script's directory
cd "$SCRIPT_DIR"

# Example operation in script's directory
echo "Listing files in script directory:"
ls -al

# Launch another application from the script directory
./application

स्क्रिप्ट निर्देशिका खोजने के लिए अतिरिक्त तरीके

उस निर्देशिका को खोजने के लिए एक अन्य उपयोगी विधि जहां स्क्रिप्ट स्थित है, उसमें पर्यावरण चर का लाभ उठाना शामिल है। कुछ प्रणालियों में, $0 वेरिएबल में वर्तमान में निष्पादित स्क्रिप्ट का पथ शामिल है। जैसे कमांड के साथ इसे जोड़कर dirname और readlink, आप स्क्रिप्ट की निर्देशिका को अधिक पोर्टेबल तरीके से निर्धारित कर सकते हैं। यह विशेष रूप से तब उपयोगी होता है जब स्क्रिप्ट को विभिन्न वातावरणों में या सिम्लिंक के माध्यम से निष्पादित किया जाता है।

का उपयोग करते हुए readlink निर्देशिका निर्धारित करने में सटीकता सुनिश्चित करते हुए, उनके वास्तविक फ़ाइल पथों के प्रतीकात्मक लिंक को हल कर सकते हैं। उदाहरण के लिए, DIR="$(dirname "$(readlink -f "$0")")" स्क्रिप्ट की निर्देशिका प्राप्त होगी, भले ही वह एक सिम्लिंक हो। इन तरीकों को समझने से आपकी स्क्रिप्टिंग टूलकिट का विस्तार होता है, जिससे अधिक मजबूत और अनुकूलनीय स्क्रिप्ट परिनियोजन की अनुमति मिलती है।

सामान्य प्रश्न और उत्तर

  1. मैं बैश में स्क्रिप्ट की निर्देशिका कैसे प्राप्त कर सकता हूं?
  2. उपयोग ${BASH_SOURCE[0]} के साथ संयुक्त dirname और pwd निर्देशिका खोजने के लिए.
  3. स्क्रिप्ट निर्देशिका का निर्धारण क्यों महत्वपूर्ण है?
  4. यह सुनिश्चित करता है कि स्क्रिप्ट के भीतर संचालन सही संदर्भ में होता है, खासकर सापेक्ष फ़ाइल पथों से निपटते समय।
  5. क्या मैं स्क्रिप्ट निर्देशिका खोजने के लिए पर्यावरण चर का उपयोग कर सकता हूँ?
  6. हाँ, वैरिएबल जैसे $0 और जैसे आदेश readlink स्क्रिप्ट का स्थान निर्धारित करने में मदद कर सकता है।
  7. क्या करता है readlink -f करना?
  8. यह एक पूर्ण पथ प्रदान करते हुए, उनके अंतिम गंतव्य तक सभी प्रतीकात्मक लिंक को हल करता है।
  9. कैसे हुआ sys.argv[0] पायथन स्क्रिप्ट में काम करें?
  10. इसमें स्क्रिप्ट का नाम शामिल है जिसका उपयोग पायथन स्क्रिप्ट को लागू करने के लिए किया जाता है, जो स्क्रिप्ट की निर्देशिका निर्धारित करने के लिए उपयोगी है।
  11. है os.path.realpath() पायथन लिपियों में आवश्यक?
  12. हां, यह निर्दिष्ट फ़ाइल नाम का विहित पथ लौटाता है, जो पूर्ण पथ निर्धारित करने में मदद करता है।
  13. क्या इन विधियों का उपयोग अन्य स्क्रिप्टिंग भाषाओं में किया जा सकता है?
  14. हालाँकि विशिष्टताएँ भिन्न हो सकती हैं, स्क्रिप्ट स्थानों को निर्धारित करने के लिए समान अवधारणाओं को अन्य भाषाओं में लागू किया जा सकता है।

स्क्रिप्ट निर्देशिका स्थान पर अंतिम विचार

स्क्रिप्ट की विश्वसनीयता और सही फ़ाइल प्रबंधन के लिए उस निर्देशिका को ढूंढना आवश्यक है जहां बैश स्क्रिप्ट स्थित है। जैसे कमांड का उपयोग करके ${BASH_SOURCE[0]}, dirname, और pwd, आप यह सुनिश्चित कर सकते हैं कि आपकी स्क्रिप्ट अपनी इच्छित निर्देशिका के भीतर संचालित हो। यह दृष्टिकोण न केवल बैश में प्रभावी है बल्कि इसे पायथन स्क्रिप्ट के उपयोग के लिए भी अनुकूलित किया जा सकता है os.path.realpath() और sys.argv[0]. ये तकनीकें मजबूत स्क्रिप्ट बनाने में मदद करती हैं जो फ़ाइलों को प्रबंधित करने और एप्लिकेशन को उनके निष्पादन वातावरण की परवाह किए बिना सटीक रूप से लॉन्च करने में सक्षम हैं।