** glob 문자는 무엇입니까?


84

내 반응 gulpfile에 다음 경로가 있습니다.

var path = {
  HTML: 'src/index.html',
  ALL: ['src/js/*.js', 'src/js/**/*.js', 'src/index.html'],
  JS: ['src/js/*.js', 'src/js/**/*.js'],
  MINIFIED_OUT: 'build.min.js',
  DEST_SRC: 'dist/src',
  DEST_BUILD: 'dist/build',
  DEST: 'dist'
};

이중 글롭 문자는 무엇입니까?

나는 단일 방울이 뭔지 알아 ...하지만 이중은 뭔데? 단일 방울

답변:


98

단일 별표와 거의 동일하지만 여러 디렉토리 수준 으로 구성 될 수 있습니다 .

즉, while /x/*/y은 다음과 같은 항목과 일치합니다.

/x/a/y
/x/b/y

등 (와일드 카드 섹션에 디렉토리 수준이 하나만 있음), 이중 별표 /x/**/y는 다음 과 같은 항목과 일치합니다.

/x/any/number/of/levels/y

0을 포함하는 "모든 수준의 수준"이라는 개념을 사용합니다 (즉, 선택 항목 중 하나로 /x/**/y일치 /x/y함).


제쳐두고, 내가 메인 프레임을 어떤 것으로 인정하는 것을 싫어하는만큼 , 나는 이것이 MVS의 초기 시절부터 여러 수준에서 데이터 세트를 선택할 수 있도록 사용되었다고 생각합니다 :-)


2
이것은 말이되지 않습니다. *가 0 개 이상의 문자를 나타내는 경우 해당 패턴은 잠재적으로 / x // y와 일치 할 수 있으며 이는 무의미합니다. 당신이 정말로 말하는 것은 "모든 문자 수에 임의의 문자 수"입니다. 그냥 ... 아, 모르겠어요 ... 문자 수에 상관없이 ???
AleksandrH

6
@AleksandrH, 아니, 이것은 정상적인 의미에서 정규식이 아닙니다. 문자 가 일치하지 않고 디렉토리 이름 만 있습니다. 이것은 특히 계층 적 파일 시스템을위한 것입니다. 첫 번째 요점에서 빈 디렉토리 이름이 허용되면 /x//y완벽하게 유효합니다. 그러나 이것을 허용하는 파일 시스템을 본 적이 없습니다. 두 번째 요점에서 *의미는 "모든 디렉터리 이름, 한 수준 만" (따라서 다음 /구분선을 넘어 가지 않음 ) **과 일치 하는 반면 " 각 수준의 디렉터리 이름과 여러 수준 일치" 를 의미합니다. /필요에 따라 분배기).
paxdiablo

9
for /x/**/y/, /x/y/또한 포함되어 있다는 점에 주목할 가치 가 있습니다.
Yassine Imounachen

24

일반적으로 여러 하위 디렉터리를 나타내는 데 사용됩니다. 그래서

src/js/**/*.js

일치 할 것

src/js/files/*.js
src/js/more-files/*.js

etc
etc

8
단일 별표도 예제와 일치합니다. 두 번째 예제에 추가 하위 디렉토리를 포함 시키려고했다고 생각합니다.
사이먼 이스트

1
@SimonEast 이렇게? src / js / files / controllers / user.js, src / js / files / models / foo / var.js
AutumnSky

어, 명확하지 않은
Jwan622

20

**슬래시를 포함한 모든 문자 /
*와 일치 (파일 또는 디렉토리 이름과 만 일치)를 제외한 모든 문자와 일치


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