जवाबों:
l
के लिए एक उपनाम है ls -CF
, जो सादे से अलग व्यवहार करता हैls
।
-C
-C
बनाता ls
स्तंभ के रूप में प्रिंट आउटपुट। जब स्टडआउट एक टर्मिनल होता है (बजाय किसी फ़ाइल या गैर-टर्मिनल डिवाइस पर पुनर्निर्देशित किया जाता है, या किसी अन्य कमांड को पाइप किया -C
जाता है ), निहित है। तो दौड़ना ls -C
भी दौड़ने जैसा ही है ls
। लेकिन पुनर्निर्देशित या पाइप किए जाने पर वे समतुल्य नहीं होते हैं ls
। उदाहरण के लिए:
ek@Kip:~/firefox$ ls
application.ini libfreebl3.chk libxpcom.so
blocklist.xml libfreebl3.so libxul.so
chrome libmozalloc.so mozilla-xremote-client
chrome.manifest libmozsqlite3.so omni.ja
components libnspr4.so platform.ini
crashreporter libnss3.so plugin-container
...
ek@Kip:~/firefox$ ls | less
application.ini
blocklist.xml
chrome
chrome.manifest
components
crashreporter
...
इसके विपरीत, ls -C
(या -l
) कॉलम फॉर्म में आउटपुट होता है, चाहे वह किसी भी प्रकार का हो stdout
। ls -C | less
शीर्ष आउटपुट की तरह दिखता है (लेकिन less
निश्चित रूप से पृष्ठांकित )।
-F
के बीच मुख्य अंतर दिखाई ls
और l
की वजह से है -F
झंडा है, जिसकी वजह ls
प्रविष्टियों यह प्रदर्शित करता है के लिए प्रतीकात्मक प्रत्यय (संकेतक कहा जाता है) संलग्न करने के लिए। ये संकेतक पहचानते हैं कि वे किस प्रकार की फ़ाइल या निर्देशिका हैं।
ls
उपरोक्त पहले कमांड के आउटपुट से इसकी तुलना करें :
ek@Kip:~/firefox$ ls -F
application.ini libfreebl3.chk libxpcom.so*
blocklist.xml libfreebl3.so* libxul.so*
chrome/ libmozalloc.so* mozilla-xremote-client*
chrome.manifest libmozsqlite3.so* omni.ja
components/ libnspr4.so* platform.ini
crashreporter* libnss3.so* plugin-container*
...
यहाँ:
/
मतलब प्रविष्टि एक निर्देशिका है।*
मतलब प्रविष्टि एक सामान्य फ़ाइल है और निष्पादन योग्य है (यानी, निष्पादन योग्य अनुमतियाँ हैं )।कई अन्य संकेतक हैं:
@
इसका मतलब है कि प्रविष्टि एक प्रतीकात्मक कड़ी है (यह भी देखें man symlink
)।|
इसका मतलब है कि प्रविष्टि एक FIFO डिवाइस है (याद रखें, यूनिक्स जैसे OS में कई संसाधन फाइलसिस्टम प्रविष्टियों द्वारा दर्शाए गए हैं )।=
मतलब एंट्री एक सॉकेट है ।>
इसका मतलब है कि प्रवेश द्वार है ।--classify
झंडा और --indicator-style=classify
के बराबर हैं -F
।
स्रोत: जीएनयू कोरुटिल्स मैनुअल , धारा 10.1.5 सामान्य आउटपुट स्वरूपण
l
( ls -CF
) के समान है, लेकिन है नहीं एक ही रूप में ls
।यह भी ध्यान में रखना अच्छा है:
यह आमतौर पर उन विकल्पों को निर्दिष्ट करने के लिए उपयोग किया जाता है जो व्यापक रूप से अत्यधिक उपयोगी और हानिरहित दोनों माना जाता है, जैसे कि स्वचालित stdout
रंगीकरण (जहां रंग अप्रत्यक्ष रूप से लागू होता है या एक टर्मिनल होता है, इसलिए रंग निर्दिष्ट करने वाले भागने के कोडों की वास्तव में गलत व्याख्या नहीं होने की गारंटी है)।
ls
खुद एक उपनाम है।ek@Kip:/$ alias ls
alias ls='ls --color=auto'
जब आप चलते हैं तो वास्तव में क्या कमांड निष्पादित होती है l
? यह वाला:
/bin/ls --color=auto -CF
bash
) उन कमांडों को हल करता /
है PATH
, जिनमें उबंटू में होने वाला पहला मैच नहीं है , जो कि उबंटू में ls
है /bin/ls
।इसलिए जो संकल्प l
करता है ls -CF
, उसका समाधान करता है ls --color=auto -CF
।
ये उपनाम मौजूद हैं क्योंकि वे डिफ़ॉल्ट रूप से इस तरह स्थापित हैं, लेकिन हर उपयोगकर्ता अपने उपनाम बदल सकता है। देखें man alias
, एडवांस्ड बैश-स्क्रिप्टिंग गाइड में अध्याय 25 और परिशिष्ट एम , और मेरी "उपनाम" प्रविष्टियों को हमेशा के लिए कैसे बचाएं ।
सम्बंधित: ls में विभिन्न रंगों का क्या अर्थ है?
असल में दोनों ls
और l
बराबर हैं
raja@badfox:~/Pictures$ l
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png
raja@badfox:~/Pictures$ ls
des.png
Screenshot from 2012-09-22 19:37:03.png
Screenshot from 2012-09-22 19:37:11.png
Screenshot from 2012-09-22 19:37:12.png
Untitled.png
इसका मतलब यह है कि इसके लिए एक अंतर्निहित प्रणाली उर्फ है। अगर आप देखना चाहते हैं, alias
तो अपना टर्मिनल खोलें और टाइप करें तो आपको इस तरह आउटपुट मिलेगा
raja@badfox:~/Pictures$ alias
alias alert='notify-send --urgency=low -i "$([ $? = 0 ] && echo terminal || echo error)" "$(history|tail -n1|sed -e '\''s/^\s*[0-9]\+\s*//;s/[;&|]\s*alert$//'\'')"'
alias egrep='egrep --color=auto'
alias fgrep='fgrep --color=auto'
alias grep='grep --color=auto'
alias l='ls -CF'
alias la='ls -A'
alias ll='ls -alF'
alias lock='gnome-screensaver-command -l'
alias ls='ls --color=auto'
alias sms='php .sms.php'
raja@badfox:~/Pictures$
l
और सादे ls
हैं नहीं एक ही - वे बस हुआ , के बाद से कोई भी निर्देशिका, निष्पादन, सिमलिंक, या डिवाइस नोड्स (और मानक उत्पादन एक टर्मिनल था) थे उन विशेष फ़ाइलों के लिए एक ही उत्पादन का उत्पादन करने के लिए।
alias l='ls -CF'
इसलिए यह समान नहीं है। इसके अलावा, यदि आप अधिक रसीला उत्पादन प्राप्त करना चाहते हैं, तो आप चला सकते हैं alias l
।