l 명령은 무엇을합니까?


19

l내 컴퓨터에는 사용할 수 없는 명령이 있습니다. which l또한 출력을 생성하지 않습니다. 이것은 실제 명령입니까, 실제로 무엇을합니까?

답변:


20

l입니다 별칭 에 대한 ls -CF, 일반 다르게 작동합니다ls .

-C

-Cls열 형태로 프린트 출력한다. 경우 표준 출력이 터미널은 (보다 파일이나 비 단말 장치로 리디렉션, 또는 다른 명령에 파이프이다)이다 -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*

...

여기:

  • / 항목이 디렉토리임을 의미합니다.
  • *항목이 일반 파일이고 실행 가능함 (즉, 실행 권한이 있음 )을 의미합니다.
  • 표시기가 없으면 항목이 실행 불가능한 일반 파일임을 의미합니다.

몇 가지 다른 지표가 있습니다.

--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
  1. 쉘은 ( bash)가 포함되지 않은 명령 해결 /에 나타나는 첫 경기에 PATH우분투를위한이 ls입니다 /bin/ls.
  2. 별칭은 별칭을 포함 할 수 있습니다. 별명 분석은 재귀 적이 지 않습니다 (별명이 같은 이름의 일반 명령을 호출 할 수는 있지만 별명은 자체 호출 할 수 없습니다). 그러나 중첩을 지원 합니다 .

따라서 lls -CF해결됩니다 ls --color=auto -CF.

별명을 변경할 수 있습니다.

이러한 별칭은 기본적으로 설정되어 있기 때문에 존재하지만 모든 사용자는 자신의 별칭을 변경할 수 있습니다. 참조 man alias, 25 장부록 M을 고급 Bash 스크립팅 가이드에, 그리고 어떻게 내 "별명"항목 저장 영원히 .

관련 : ls에서 다른 색상은 무엇을 의미합니까?


6

실제로 모두 lsl동일

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$ 

미스터리 해결 :)
Armand

6
@Alison l및 일반이 ls있습니다 하지 같은 - 그들은 단지 일어난 것도 디렉토리, 실행 파일, 심볼릭 링크, 또는 장치 노드 (표준 출력이 터미널이었다)이었다 없기 때문에, 그 특정 파일에 대한 동일한 출력을 생성 할 수 있습니다.
Eliah Kagan

을 볼 수 alias l='ls -CF'있으므로 동일하지 않습니다. 또한 간결한 출력을 얻으려면을 실행할 수 있습니다 alias l.
wjandrea

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.