답변:
l
입니다 별칭 에 대한 ls -CF
, 일반 다르게 작동합니다ls
.
-C
-C
수 ls
열 형태로 프린트 출력한다. 경우 표준 출력이 터미널은 (보다 파일이나 비 단말 장치로 리디렉션, 또는 다른 명령에 파이프이다)이다 -C
함축된다. 따라서 running 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 장치 임을 의미합니다 ( 유닉스 계열 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
우분투를위한이 ls
입니다 /bin/ls
.따라서 l
로 ls -CF
해결됩니다 ls --color=auto -CF
.
이러한 별칭은 기본적으로 설정되어 있기 때문에 존재하지만 모든 사용자는 자신의 별칭을 변경할 수 있습니다. 참조 man alias
, 25 장 및 부록 M을 고급 Bash 스크립팅 가이드에, 그리고 어떻게 내 "별명"항목 저장 영원히 .
실제로 모두 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
.