^()
너무 당연한 질문이셨다면 죄송합니다만, 그게 무슨 뜻인지는 모르겠습니다.
ls ^(*.c|*.md)
에서 zsh
이 매개변수는 *.c
및 파일을 *.md
제외한 모든 항목 으로 확장됩니다.
- 무엇인가요
^
? ()
이 맥락에서 괄호는 무엇을 의미합니까?- 이 명령 도 작동합니다. 또는 을
^(*.c||*.md)
사용해야 합니까 ?|
||
답변1
^
Zsh 에서는글로벌 운영자EXTENDED_GLOB
설정 후 사용 가능, 모든 콘텐츠와 일치와는 별개로다음 모드.괄호 그룹 패턴은
|
분리가 파이프로 해석되지 않도록 괄호가 필요한 분리( )에 유용합니다.^(*.c||*.md)
" 일치하는 파일 , 빈 이름의 파일 또는 일치하는 파일을*.c
제외한 모든 것 "을 의미합니다. 빈 이름은 쓸모가 없으므로 중복을 피하기 위해*.md
을 사용할|
수도 있습니다 .^*.(c|md)
*.
--
또한 옵션 구분 기호를 사용해야 합니다 . ls
그렇지 않으면 파일 이름이 로 시작하는 경우 -
옵션으로 처리됩니다 ls
.
ls
유형이 발생한 glob 확장자에 의해 생성된 파일의 내용을 나열하지 않으려는 경우목차, 이 옵션을 사용해야 합니다 -d
. 또는 내장된 기능을 사용하여 이러한 파일 이름을 인쇄하십시오. print
이러한 파일에서 메타데이터 정보를 얻는 ls
것과 같은 옵션에만 유용합니다 .-l
ls -ld -- ^*.(md|c)
print -rC1 -- ^*.(md|c)(N)
여기서 파일 이름은 print
ed r
aw on 1
C
olumn입니다. 일치하는 파일을 찾을 수 없는 경우(그리고 해당 파일에서 출력을 얻을 수 없는 경우 ) 오류를 방지하기 N
위한 glob 한정자입니다 .NULL_GLOB
print