재귀 와일드카드 **/* 및 */**

재귀 와일드카드 **/* 및 */**

나는 와일드 카드 재귀 와일드 카드를 배우고 있으며 시도했습니다.

$ ls **/* | wc -l
15
$ ls */** | wc -l
15

그들은 동일한 결과를 출력합니다.

**/*와 사이에 차이가 있나요 */**?

답변1

*/**디렉터리(및 해당 하위 디렉터리 및 파일)만 일치합니다. 현재 디렉터리(디렉토리가 아닌)의 파일은 일치하지 않습니다. */그 이유는 globstar 확장을 시작하기 전에 디렉터리 접두사가 필요하기 때문입니다 **. 의 경우 옵션에 따라 현재 디렉터리 아래의 모든 파일 및 디렉터리로 확장되므로 **/*후행 /*은 관련이 없습니다 . 이 시점에서 모든 디렉토리가 확장되었으므로 후행은 아무것도 일치하지 않습니다.**dotglob/*

ls"유용하게" 읽을 수 있으므로 테스트할 때 주의하세요.입력하다전달할 수 있는 모든 디렉토리는 다음과 같습니다.

printf "%s\n" */**
printf "%s\n" **/*

또한 배관을 사용하면 wc -l실제 개수가 잘못될 수 있습니다.

$ touch a $'b\nc'
$ ls -1
a
b?c
$ ls | wc -l
3     ## WRONG!

관련 정보