Yanıtlar:
lBir olan takma için ls -CF, düz farklı davranırls .
-C-Clsçıktıyı sütun biçiminde yapar . Tüm stdout'u bir terminal (yerine bir dosya ya da olmayan terminal cihazına yönlendirilir ya da başka bir komuta yöneltilen) 'dir, -Cima edilir. Yani koşmak koşmakla ls -Caynıdır ls. Ancak yönlendirildiklerinde veya yönlendirildiğinde eşdeğer değildirlerls . Örneğin:
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
...
Aksine, ls -C(veya -l) ne tür bir cihaz olduğuna bakılmaksızın sütun biçiminde çıktılar stdout. ls -C | lessüst çıktıya benziyor (ancak lesselbette tarafından sayfalandırıldı ).
-FArasındaki temel görünür fark lsvel bağlı olmaktır -Fneden olan bayrak, lsgirdileri o görüntüler sembolik ekleri (denilen göstergeler) eklemek için. Bu göstergeler ne tür bir dosya veya dizin olduklarını belirler.
Bunu lsyukarıdaki ilk komutun çıktısıyla karşılaştırın :
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*
...
Buraya:
/ girişin bir dizin olduğu anlamına gelir.*girişin normal bir dosya olduğu ve yürütülebilir (yani yürütülebilir izinleri olduğu ) anlamına gelir.Başka göstergeler de var:
@girişin sembolik bir bağlantı olduğu anlamına gelir (ayrıca bakınız man symlink).|girişin bir FIFO cihazı olduğu anlamına gelir (unutmayın, Unix benzeri işletim sistemlerindeki birçok kaynak dosya sistemi girişleriyle temsil edilir ).=girişin bir soket olduğu anlamına gelir .>girişin bir kapı olduğu anlamına gelir .--classifyBayrak ve --indicator-style=classifyeşdeğerdir -F.
Kaynak: GNU Coreutils kılavuzu , Bölüm 10.1.5 Genel çıktı biçimlendirmesi
l( ls -CF) benzer ama aynı değildir olarakls .Akılda tutulması da iyidir:
Bu, otomatik renklendirme (rengin ne zaman uygulandığı yerlerde) gibi hem son derece yararlı hem de zararsız olarak kabul edilen seçenekleri belirtmek için yaygın olarak kullanılır stdout değiştirilmediğinde veya bir terminal olduğu , bu nedenle renkleri belirten kaçış kodlarının yanlış yorumlanmamaları neredeyse garanti .
lskendisi bir takma addır.ek@Kip:/$ alias ls
alias ls='ls --color=auto'
Peki , çalıştırdığınızda hangi komut gerçekten çalıştırılır l? Bu:
/bin/ls --color=auto -CF
bash) bir içermeyen komutlar giderir /belirdiğini eşleşmeye PATH, burada Ubuntu'da için lsIS/bin/ls .Yani lgiderir için ls -CFhangi giderir ls --color=auto -CF.
Bu takma adlar, varsayılan olarak bu şekilde ayarlandıkları için mevcuttur, ancak her kullanıcı takma adlarını değiştirebilir. Bkz man alias, Bölüm 25 ve Ek M Gelişmiş Bash-Komut Kılavuzu'nda ve nasıl "takma" girdileri tasarruf sonsuza .
Aslında, her iki lsve leşittir
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
neden buna sebep olan yerleşik bir sistem takma adı olduğu anlamına gelir. görmek istiyorsanız, terminalinizi açın ve yazın, aliassonra böyle bir çıktı alırsınız
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$
lKayar lsolan değil aynı - sadece ne yok dizinleri, çalıştırılabilir, sembolik veya aygıt düğümleri (ve standart çıkış terminali olarak) olduğu için, bu özel dosyalar için aynı çıktı üretmek için.
alias l='ls -CF', bu aynı değil. Ayrıca, daha özlü çıktı almak istiyorsanız, çalıştırabilirsiniz alias l.