인용 된 문자열 만 globbing 대상 이 아닙니다 .
$ echo ".[].aliases[]"
.[].aliases[]
그러나 인용되지 않은 줄은 움켜 subject니다. 포함하는 인용되지 않은 문자열 *
이나 ?
또는 (유효) []
(브라켓 발현)이 일치하는 파일의 목록이 수정됩니다. a *
가 일치하는 디렉토리의 모든 파일로 변환되고 a ?
가 한 문자의 파일 과 일치 하는 것과 같은 방식으로 (유효한) []
파일은 대괄호 안의 문자와 일치합니다. 점은 유효한 문자입니다.
$ echo a[.]b
a[.]b
$ touch "a.b"
$ echo a[.]b
a.b
일치시킬 수 있으려면 ]
대괄호 안의 첫 번째 문자 여야합니다.
$ touch "a]b"
$ ls a[]]b
a]b
빈 대괄호 표현식은 의미가 없으며 확장되지 않습니다.
$ touch ab
$ ls a[]b
ls: cannot access 'a[]b': No such file or directory
이것이 이것이 작동하는 이유입니다.
$ touch a]c abc afc azc a:c a?c aoc
$ ls a[]bfz:?]c
abc a:c a?c a]c afc azc
대한 [
생각과 비슷합니다 :
$ touch a[c
$ ls a[[]c
a[c
그러나 대괄호 표현식의 어느 위치 에나있을 수 있습니다.
$ ls a[]bf[z:?]c
abc a:c a?c a[c a]c afc azc
$ ls a[]bfz:?[]c
abc a:c a?c a[c a]c afc azc
게시 한 문자열 .[].foo[]
은 점 다음에 a ]
, a .
, a f
, a o
또는 a 와 일치 합니다 [
. 다음과 유사합니다.
$ echo a[].foo[]c
a[c a]c afc aoc
다음과 같이 일치합니다.
$ touch .] .f .o .[ .a .b .z
$ echo .[].foo[]
.. .[ .] .f .o
디렉토리 항목 ..
은 기본적으로 모든 디렉토리 내에 존재하므로 작성하지 않아도됩니다. 그러나 간단한 점 .
은 명시 적으로 일치해야하므로 실제로 점을 사용하여 glob과 일치하지 않습니다.
그러나 ..aliases
대괄호 표현식은 한 문자 만 일치하므로 일치하지 않습니다 . 여러 문자를 일치 시키려면 *
(무엇이든) 을 사용해야합니다 .
$ touch ..a ..l ..i ..aliases ..alias ..ali
$ echo .[].aliases[]
.. .[ .] .a
$ echo .[].aliases[]*
.. .[ .] .a ..a ..ali ..alias ..aliases ..i ..l