`Ls --directory` क्या है?


17

मेरे उबंटू संस्करण में आदमी ls के बारे में अगली जानकारी है --directory:

list directory entries instead of contents, and do not dereference symbolic links

इसलिए मैं थोड़ा उलझन में हूं कि यह कैसे काम करता है। मैंने कमांड का उपयोग किया ls --directoryऔर मुझे सभी निर्देशिकाओं के साथ एक सूची की उम्मीद थी लेकिन इसके बजाय मुझे मिल गया.

तो वास्तव में क्या करता है ls --directoryया ls -dक्या करता है?

जवाबों:


24
$ man ls
...
-d, --directory
              list directories themselves, not their contents

वर्तमान निर्देशिका को इस प्रकार दर्शाया गया .है कि ls -dसूचीकरण क्या है।

वर्तमान निर्देशिका के अंदर निर्देशिका निर्देशिका की सामग्री है, और इसलिए इस विकल्प के साथ नहीं दिखाए जाते हैं।

मैं -dछिपी हुई फ़ाइलों और निर्देशिकाओं को प्रदर्शित करने के लिए अन्य उपनाम में विकल्प का उपयोग करता हूं

alias l.='ls -dC .* --color'

इसके बिना -d, यह छिपी हुई निर्देशिकाओं की सामग्री को भी सूचीबद्ध करेगा, जो कि मैं नहीं चाहता।

इसका एक और उपयोग तब है जब मैं -lविकल्प का उपयोग करके किसी निर्देशिका का मेटाडेटा देखना चाहता हूं , न कि इसकी सामग्री:

$ ls -ld playground
drwxr-xr-x 72 zanna zanna 12288 Mar  1 23:10 playground

यदि आप वर्तमान निर्देशिका में उन निर्देशिकाओं की सूची चाहते हैं, जिनका आप उपयोग कर सकते हैं

ls -d */

ls -dC .* --colorछिपी हुई फाइलों को न सिर्फ निर्देशिकाओं को सूचीबद्ध करता है।
पाऊ चोरो

1
हां @PauChorro मैं वास्तव में अपने जवाब में कहता हूं। मैं इसका उपयोग सभी छिपी हुई फाइलों और निर्देशिकाओं को प्रदर्शित करने के लिए करता हूं
Zanna

1
@PauChorro मैंने केवल निर्देशिकाओं को सूचीबद्ध करने का एक तरीका जोड़ा
Zanna

1
मेरे उबंटू संस्करण man lsमें अगली जानकारी है list directory entries instead of contents, and do not derefer‐ ence symbolic links:। तो आपके संस्करण में यह बेहतर व्याख्या है कि यह वास्तव में क्या करता है।
पाऊ चोरो

1
@ Pil6 यह फाइलों को भी सूचीबद्ध करेगा
Zanna

11

lsकेवल का उपयोग करना -dलगभग बेकार है। यह निर्देशिका के बारे में ही जानकारी देता है। यह इसकी सामग्री को सूचीबद्ध नहीं करता है।

यही कारण है कि आप निर्देशिकाओं की एक सूची नहीं देखते हैं। जिन निर्देशिकाओं को आपने देखने की अपेक्षा की थी, वे वर्तमान निर्देशिका की "सामग्री" हैं

यदि आप बस चलाते हैं तो ls -dयह वर्तमान निर्देशिका को दिखाता है .

अगर इसे अन्य कुंजी के साथ चलाने के लिए समझ में आता है -l

ls -ld वर्तमान निर्देशिका की अनुमति दिखाएगा।

pilot6@Pilot6:~$ ls -ld
drwxrwxr-x 1 pilot6 pilot6 2570 Mar  4 12:14 .

आप किसी अन्य निर्देशिका की अनुमति भी देख सकते हैं

ls -ld /bin

pilot6@Pilot6:~$ ls -ld /bin
drwxr-xr-x 1 root root 2584 Feb 25 15:19 /bin

यदि आप ls -lबिना चलाते -dहैं, तो आपके पास वर्तमान निर्देशिका में फ़ाइलों और फ़ोल्डरों के लिए सभी अनुमतियों की सूची होगी। यदि आपको इसकी आवश्यकता नहीं है, तो यह ls -ldउपयोग के लिए एक अच्छा उदाहरण है ।

आप वर्तमान में निर्देशिका को एक-एक करके सूचीबद्ध कर सकते हैं

ls -d */

6

ls -dअपने आप से उपयोग करना काफी बेकार है क्योंकि एक पैरामीटर के बिना यह हमेशा लौटता है .। एक पैरामीटर निर्दिष्ट करने के बाद यह समझ में आता है। उदाहरण के लिए यदि आपका उपयोगकर्ता नाम है rickऔर आप सभी निर्देशिकाओं को अपने घरेलू उपयोग में देखना चाहते हैं:

$ ls -d /home/rick/*/
/home/rick/AAC/        /home/rick/EnhanceIO/         /home/rick/silentcast/
/home/rick/assembly/   /home/rick/EnhanceIO-master/  /home/rick/Templates/
/home/rick/bin/        /home/rick/log/               /home/rick/test/
/home/rick/Desktop/    /home/rick/Music/             /home/rick/tmpe/
/home/rick/Documents/  /home/rick/Pictures/          /home/rick/Videos/
/home/rick/Downloads/  /home/rick/Public/

5

मुझे उदाहरणों के साथ समझाएं:

  1. ls: एक निर्देशिका की सूची सामग्री

  2. ls -d या ls --directory : सूची निर्देशिका खुद, उनकी सामग्री नहीं

उदाहरण:

ls -d android-sdk-linux/

# result
android-sdk-linux/

ls android-sdk-linux/

# result
add-ons  build-tools  platforms  platform-tools  SDK Readme.txt  temp  tools

आपका यह मामला ls -dयह कहता है कि सूची में केवल मुझे वह निर्देशिका दिखाइए जो मैं उसकी सामग्री में नहीं हूं (जैसे .कि लिनक्स शब्दों में), इसलिए इसका परिणाम है:.

लेकिन अगर आपने कहा था: lsतो आपको वह सब दिखाई देगा जो वर्तमान निर्देशिका में मौजूद है .


4

ls -dसूची उनकी सामग्री के बजाय उन्हें स्व। फ़ाइलें सामान्य रूप में सूचीबद्ध हैं। इस पर गौर करेंman lsसभी विकल्पों में से एक का वर्णन करने के लिए ।

. क्या यह निर्देशिका स्वयं है, वही जिसका आप वर्तमान निर्देशिका से कमांड चलाते समय उपयोग करते हैं, ./runscript.sh

..पैरेंट डायरेक्टरी, वर्तमान डायरेक्टर के लिए पेरेंट है, जैसा cd ..कि डाइरेक्टरी हिरेसी में कदम रखने के लिए है

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.