Jawaban:
ladalah alias untuk ls -CF, yang berperilaku berbeda dari biasals .
-C-Cmembuat lshasil cetak dalam bentuk kolom. Ketika stdout adalah terminal (daripada diarahkan ke file atau perangkat non-terminal, atau disalurkan ke perintah lain), -Ctersirat. Jadi berlari ls -Csama dengan berlari ls. Tetapi mereka tidak setara kapanls dialihkan atau disalurkan. Sebagai contoh:
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
...
Sebaliknya, ls -C(atau -l) output dalam bentuk kolom terlepas dari apa jenis perangkat stdoutitu. ls -C | lessterlihat seperti output teratas (tetapi halaman olehless , tentu saja).
-FPerbedaan utama yang terlihat antara lsdanl adalah karena -Fbendera, yang menyebabkan lsuntuk menambahkan sufiks simbolik (disebut indikator) ke entri yang ditampilkan. Indikator-indikator ini mengidentifikasi jenis file atau direktori mereka.
Bandingkan ini dengan output yang pertama ls perintah atas:
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*
...
Sini:
/ berarti entri adalah direktori.* berarti entri adalah file normal dan dapat dieksekusi (mis., dapat dieksekusi izin yang ).Ada beberapa indikator lain:
@berarti entri adalah tautan simbolik (lihat jugaman symlink ).|berarti entri adalah perangkat FIFO (ingat, banyak sumber daya di OS mirip Unix diwakili oleh entri sistem file ).=berarti entri adalah soket .>berarti entri adalah pintu .The --classifybendera dan --indicator-style=classifysetara dengan -F.
Sumber: manual GNU Coreutils , Bagian 10.1.5 Pemformatan output umum
l( ls -CF) mirip dengan tetapi tidak sama denganls .Ini juga baik untuk diingat:
Ini biasanya digunakan untuk menentukan opsi yang secara luas dianggap sangat bermanfaat dan tidak berbahaya, seperti pewarnaan otomatis (di mana warna diterapkan saat stdout tidak diarahkan atau merupakan terminal, sehingga kode melarikan diri yang menentukan warna pada dasarnya dijamin tidak akan disalahartikan).
lsitu sendiri adalah alias.ek@Kip:/$ alias ls
alias ls='ls --color=auto'
Jadi perintah apa yang benar - benar dijalankan ketika Anda menjalankan l? Yang ini:
/bin/ls --color=auto -CF
bash) menyelesaikan perintah yang tidak mengandung a /ke kecocokan pertama yang muncul PATH, yang untuk Ubuntu lsadalah /bin/ls.Jadi lputuskan untuk ls -CFyang memutuskan untuk ls --color=auto -CF.
Alias ini ada karena diatur secara default, tetapi setiap pengguna dapat mengubah alias mereka. Lihat man alias, Bab 25 dan Lampiran M dalam Panduan Script Bash Lanjutan, dan Bagaimana cara menyimpan entri "alias" saya selamanya .
Terkait: Apa arti perbedaan warna dalam ls?
Sebenarnya kedua lsdan lsama
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
mengapa berarti ada sistem bawaan alias menyebabkan untuk ini. jika Anda ingin melihat, buka terminal Anda dan ketik aliasmaka Anda akan mendapatkan output seperti ini
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$
ldan polos lsyang tidak sama - mereka hanya terjadi untuk menghasilkan output yang sama untuk file-file tertentu, karena tidak ada yang direktori, executable, symlink, atau perangkat node (dan output standar adalah terminal).
alias l='ls -CF'jadi tidak sama. Juga, jika Anda ingin mendapatkan hasil yang lebih ringkas, Anda dapat menjalankannya alias l.