क्या कोई linux कमांड है जिसे मैं बैश स्क्रिप्ट से कॉल कर सकता हूं जो डायरेक्टरी स्ट्रक्चर को ट्री के रूप में प्रिंट करेगा, जैसे;
folder1
a.txt
b.txt
folder2
folder3
क्या कोई linux कमांड है जिसे मैं बैश स्क्रिप्ट से कॉल कर सकता हूं जो डायरेक्टरी स्ट्रक्चर को ट्री के रूप में प्रिंट करेगा, जैसे;
folder1
a.txt
b.txt
folder2
folder3
जवाबों:
क्या यह आप पेड़ की तलाश कर रहे हैं ? यह अधिकांश वितरणों में होना चाहिए (शायद एक वैकल्पिक स्थापित के रूप में)।
~> tree -d /proc/self/
/proc/self/
|-- attr
|-- cwd -> /proc
|-- fd
| `-- 3 -> /proc/15589/fd
|-- fdinfo
|-- net
| |-- dev_snmp6
| |-- netfilter
| |-- rpc
| | |-- auth.rpcsec.context
| | |-- auth.rpcsec.init
| | |-- auth.unix.gid
| | |-- auth.unix.ip
| | |-- nfs4.idtoname
| | |-- nfs4.nametoid
| | |-- nfsd.export
| | `-- nfsd.fh
| `-- stat
|-- root -> /
`-- task
`-- 15589
|-- attr
|-- cwd -> /proc
|-- fd
| `-- 3 -> /proc/15589/task/15589/fd
|-- fdinfo
`-- root -> /
27 directories
अनुचर के वेब पेज से लिया गया नमूना।
अधिकतम पुनरावृत्ति की गहराई को निर्दिष्ट करने के लिए आप उस विकल्प को जोड़ सकते हैं -L #
जहां #
एक संख्या को प्रतिस्थापित किया गया है।
-d
फ़ाइलों को भी प्रदर्शित करने के लिए निकालें ।
-d
फ़ाइलों को भी प्रदर्शित करने के लिए निकालें !
brew install tree
apt-cyg install tree
साइबरविन पर स्थापित करने के लिए (यह मानते हुए कि आपने एप्ट-साइग को स्थापित किया है)
apt-get install tree
इसे स्थापित करेगा।
आप इसका उपयोग कर सकते हैं:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//--/g' -e 's/^/ /' -e 's/-/|/'
यह कुछ सेकंड में फ़ाइलों के बिना वर्तमान उप-निर्देशिकाओं का चित्रमय प्रतिनिधित्व प्रदर्शित करेगा , जैसे /var/cache/:
.
|-apache2
|---mod_cache_disk
|-apparmor
|-apt
|---archives
|-----partial
|-apt-xapian-index
|---index.1
|-dbconfig-common
|---backups
|-debconf
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\// /g' -e 's/^/ /'
.git
?
find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
अपने .bashrc में Hassou के समाधान को जोड़ने के लिए, प्रयास करें:
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"
alias lst='ls -R | grep ":$" | sed -e '"'"'s/:$//'"'"' -e '"'"'s/[^-][^\/]*\//--/g'"'"' -e '"'"'s/^/ /'"'"' -e '"'"'s/-/|/'"'"''
यह कमांड फोल्डर और फाइल्स दोनों को प्रदर्शित करने का काम करती है ।
find . | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
उदाहरण आउटपुट:
.
|-trace.pcap
|-parent
| |-chdir1
| | |-file1.txt
| |-chdir2
| | |-file2.txt
| | |-file3.sh
|-tmp
| |-json-c-0.11-4.el7_0.x86_64.rpm
स्रोत: @javasheriff से टिप्पणी यहाँ । यह एक टिप्पणी के रूप में डूबा हुआ है और उत्तर के रूप में पोस्ट करने से उपयोगकर्ताओं को इसे आसानी से स्पॉट करने में मदद मिलती है।
find . |grep -vE 'pyc|swp|__init' | sed -e "s/[^-][^\/]*\// |/g" -e "s/|\([^ ]\)/|-\1/"
अच्छी तरह से काम कर रहा
मैं @ हसौ के उत्तर के उत्पादन को पहले से बता रहा हूँ:
ls -R | grep ":$" | sed -e 's/:$//' -e 's/[^-][^\/]*\//──/g' -e 's/─/├/' -e '$s/├/└/'
यह tree
अब के आउटपुट की तरह है :
.
├─pkcs11
├─pki
├───ca-trust
├─────extracted
├───────java
├───────openssl
├───────pem
├─────source
├───────anchors
├─profile.d
└─ssh
आप इसका एक उपनाम भी बना सकते हैं:
alias ltree=$'ls -R | grep ":$" | sed -e \'s/:$//\' -e \'s/[^-][^\/]*\//──/g\' -e \'s/─/├/\' -e \'$s/├/└/\''
BTW, tree
कुछ वातावरण में उपलब्ध नहीं है, जैसे MinGW। तो वैकल्पिक मददगार है।
आप डायरेक्टरी ट्री को प्रिंट करने के लिए कमांड और फाइंड अलाक का उपयोग भी कर सकते हैं। विवरण के लिए, कृपया " कैसे एक मल्टीलेवल ट्री डायरेक्टरी स्ट्रक्चर को प्रिंट करें और लिनक्स कमांड्स का उपयोग करके देखें "
find . -type d | awk -F'/' '{
depth=3;
offset=2;
str="| ";
path="";
if(NF >= 2 && NF < depth + offset) {
while(offset < NF) {
path = path "| ";
offset ++;
}
print path "|-- "$NF;
}}'
find
। या केfind . -not -path '*/\.*'
साथ शुरू करने के लिए फ़ाइलों और फ़ोल्डरों को छिपाने के लिए.
। यदि आप रिक्त स्थान के साथ आउटपुट करना चाहते हैं, तो सवाल के रूप में, इसे "प्रेटिफ़ायर ढूंढें" स्क्रिप्ट के साथ उपयोग करें:find . -not -path '*/\.*' | python -c "import sys as s;s.a=[];[setattr(s,'a',list(filter(lambda p: c.startswith(p+'/'),s.a)))or (s.stdout.write(' '*len(s.a)+c[len(s.a[-1])+1 if s.a else 0:])or True) and s.a.append(c[:-1]) for c in s.stdin]"