回答:
-C
-C
作るls
コラム形式で印刷出力を。場合stdoutが端末(よりむしろファイルまたは非端末装置にリダイレクト、または別のコマンドにパイプされる)であり、-C
暗示されています。したがって、実行ls -C
はrunning と同じ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デバイスであることを意味します(UnixライクなOSの多くのリソースはファイルシステムエントリで表されることを思い出してください)。=
エントリがソケットであることを意味します。>
エントリがドアであることを意味します。--classify
フラグと--indicator-style=classify
に相当します-F
。
出典:GNU Coreutilsマニュアル、セクション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
のUbuntuにするためには、ls
あるが/bin/ls
。したがって、にl
解決さls -CF
れるに解決されls --color=auto -CF
ます。
これらのエイリアスはデフォルトで設定されているため存在しますが、すべてのユーザーはエイリアスを変更できます。参照しman alias
、第25章および付録Mを高度なバッシュ・スクリプトガイドでは、とどのように私の「エイリアス」のエントリ保存永遠に。
実際には両方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
とplain ls
は同じではありません。起こった何がディレクトリ、実行可能ファイル、シンボリックリンク、またはデバイスノード(および標準出力が端末であった)なかったので、それらの特定のファイルに対して同じ出力を生成します。
alias l='ls -CF'
ので、それは同じではありません。また、より簡潔な出力を取得したい場合は、を実行できますalias l
。