Ubuntu tree कमांड गाइड: डायरेक्टरी स्ट्रक्चर विज़ुअलाइज़ेशन

परिचय और मुख्य अवधारणाएँ

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

tree पैकेज इंस्टॉलेशन और बुनियादी पदानुक्रम का प्रदर्शन

सिस्टम रिपॉजिटरी इंडेक्स को अपडेट करके tree टूल को Ubuntu मशीन पर इंस्टॉल करने के लिए नीचे दिया गया कमांड निष्पादित करें:

APT पैकेज इंडेक्स अपडेट और tree टूल इंस्टॉलेशन

परीक्षण के लिए एक बहुस्तरीय प्रोजेक्ट लेआउट तैयार करते हैं। इसके लिए mkdir -p demo_project/src demo_project/docs demo_project/tests रन करें:

प्रोजेक्ट डायरेक्टरी संरचना का निर्माण

तैयार किए गए अलग-अलग फोल्डरों में डमी सोर्स फाइल्स और डॉक्यूमेंट्स डालने के लिए touch कमांड चलाएँ:

नमूना फाइलों का निर्माण

बिना किसी अतिरिक्त फ्लैग के tree कमांड चलाने पर यह लक्षित डायरेक्टरी की सभी शाखाओं को रिकर्सिव रूप से स्कैन करता है और आउटपुट के अंत में कुल फाइलों और फोल्डरों की सांख्यिकी प्रस्तुत करता है।

⚙️ [सर्वाधिक उपयोगी विकल्प]

-a : डॉट (.) से प्रारंभ होने वाली सभी हिडन फाइल्स और डायरेक्टरीज को भी आउटपुट में शामिल करता है।
-d : सामान्य फाइलों को छिपाकर केवल डायरेक्टरी संरचना को प्रदर्शित करता है।
-L level : ट्री ट्रेवर्सल के लिए अधिकतम डायरेक्टरी डेप्थ निर्धारित करता है।
-f : प्रत्येक फाइल और फ़ोल्डर का पूरा रिलेटिव पाथ प्रिंट करता है।
-p : फाइल प्रकार और एक्सेस परमिशन (read/write/execute) फ़्लैग प्रदर्शित करता है।
-h : फाइल आकार को मानव-पठनीय प्रारूप (KB, MB, GB) में फॉर्मेट करता है।
-s : प्रत्येक आइटम के वास्तविक साइज को बाइट्स में दर्शाता है।
-I pattern : वाइल्डकार्ड पैटर्न के आधार पर अनचाही फाइलों या फोल्डरों को सूची से बाहर रखता है।

बुनियादी tree आउटपुट का प्रदर्शन

सर्च डेप्थ सीमित करना (-L) और केवल डायरेक्टरी देखना (-d)

गहन संरचनाओं के प्रदर्शन को परखने के लिए कुछ अतिरिक्त सब-डायरेक्टरीज़ तैयार करते हैं: mkdir -p demo_project/src/components demo_project/src/assets/images।

अतिरिक्त सब-डायरेक्टरीज़ जोड़ना

इन नए फोल्डरों में घटक कोड और इमेज एसेट्स का अनुकरण करने के लिए touch demo_project/src/components/button.py demo_project/src/assets/images/logo.png निष्पादित करें:

नेस्टेड फाइल्स तैयार करना

विशाल कोडबेस में अनावश्यक विवरण से बचने के लिए tree -L 2 demo_project कमांड का उपयोग करें। यह सर्च को ठीक दो स्तरों तक सीमित रखता है, जिससे तीसरे स्तर या उससे नीचे स्थित फाइलों को छोड़ते हुए आर्किटेक्चर का संक्षिप्त ओवरव्यू प्राप्त होता है:

दो स्तरों तक सीमित ट्री आउटपुट

यदि फाइलों की भीड़ के बिना केवल फोल्डर ऑर्गेनाइजेशन पर ध्यान केंद्रित करना हो, तो tree -d demo_project चलाएँ। यह सभी साधारण फाइलों को फिल्टर करके केवल प्रोजेक्ट के कंकाल (डायरेक्टरी आर्किटेक्चर) को सामने लाता है:

केवल डायरेक्टरी ट्री व्यू

हिडन फाइल्स (-a), अनुमतियाँ (-p) और फाइल साइज (-h) की जांच

कॉन्फ़िगरेशन फाइल्स सामान्यतः सिस्टम में छिपी रहती हैं। इस परिदृश्य को जांचने के लिए touch demo_project/.env demo_project/.gitignore चलाकर डॉट-फाइल्स तैयार करें:

डॉट-प्रिफिक्स हिडन फाइल्स का निर्माण

सुरक्षा अनुमतियों के प्रदर्शन हेतु chmod 600 demo_project/.env का उपयोग करके संवेदनशील पर्यावरण फाइल को केवल स्वामी के लिए पठनीय और संपादन योग्य बनाएं:

फाइल अनुमतियों में संशोधन

डिफ़ॉल्ट रूप से उपेक्षित रहने वाली हिडन फाइलों को विज़ुअलाइज़ेशन में शामिल करने के लिए tree -a demo_project चलाएं। अब रूट स्तर पर मौजूद .env और .gitignore दोनों घटक स्पष्ट रूप से दिखाई देंगे:

छिपी हुई फाइलों सहित सम्पूर्ण ट्री

स्ट्रक्चर के साथ-साथ सुरक्षा ऑडिट और स्टोरेज उपयोग का आकलन करने के लिए tree -p -h demo_project का प्रयोग करें। यह प्रत्येक एंट्री के लिए रीड/राइट अनुमतियाँ (-p) और पढ़ने में आसान स्टोरेज यूनिट्स (-h) को समानांतर रूप से प्रदर्शित करता है:

परमिशन और फाइल साइज के साथ विस्तृत ट्री

पैटर्न आधारित फ़िल्टरिंग (-P, -I) तथा HTML रिपोर्ट एक्सपोर्ट (-H, -o)

फिल्टरिंग का परीक्षण करने के लिए कुछ अस्थायी डेटा फाइल्स जनरेट करते हैं: touch demo_project/temp.log demo_project/debug.tmp।

लॉग और कैशे फाइलों का निर्माण

किसी विशिष्ट टेक्नोलॉजी स्टैक पर ध्यान केंद्रित करने हेतु tree -P "*.py" demo_project कमांड चलाएँ। यह वाइल्डकार्ड मैचिंग के माध्यम से केवल Python स्क्रिप्ट्स (.py) को छांटकर दिखाता है, जिससे सोर्स कोड लेआउट का विश्लेषण सहज हो जाता है:

पायथन फाइलों के लिए पैटर्न इन्क्लूजन

दूसरी ओर, शोर मचाने वाले लॉग्स या कैशे फाइलों को बाहर निकालने के लिए पाइप सिंटैक्स के साथ एक्सक्लूजन फ्लैग का प्रयोग करें: tree -I "*.tmp|*.log" demo_project। इससे गैर-ज़रूरी फाइल्स हट जाती हैं और स्वच्छ प्रोजेक्ट आर्किटेक्चर मिलता है:

टेम्परेरी और लॉग फाइलों का एक्सक्लूजन

प्रोजेक्ट संरचना को ब्राउज़र में साझा करने या डॉक्युमेंटेशन में जोड़ने के लिए tree -H http://localhost -o demo_project/structure.html demo_project चलाएँ। यह संपूर्ण ट्री को क्लिक करने योग्य वेब लिंक्स के साथ एक इंटरैक्टिव HTML पेज में एक्सपोर्ट करता है:

HTML डॉक्यूमेंटेशन रिपोर्ट जनरेशन

जनरेट की गई HTML रिपोर्ट के आंतरिक मार्कअप और मेटाडेटा की पुष्टि करने के लिए head -n 15 demo_project/structure.html रन करें:

जनरेटेड HTML फाइल का निरीक्षण

इस प्रकार Ubuntu सिस्टम पर tree यूटिलिटी का कुशल उपयोग करके जटिल स्टोरेज संरचनाओं को सहजता से समझा, प्रबंधित और प्रलेखित किया जा सकता है। अपनी आवश्यकतानुसार इन विकल्पों को मिलाकर आप अपने डेवलपमेंट वर्कफ़्लो और सिस्टम एडमिनिस्ट्रेशन कार्यों को अत्यधिक प्रभावी बना सकते हैं।