bash -c로 시작하는 단일 명령줄을 사용하여 전체 디렉터리 수를 어떻게 계산할 수 있나요?

bash -c로 시작하는 단일 명령줄을 사용하여 전체 디렉터리 수를 어떻게 계산할 수 있나요?

bash -c로 시작하는 단일 명령줄을 사용하여 전체 디렉터리 수를 어떻게 계산할 수 있나요?

접두사가 붙은 파일을 제외한 모든 파일이 반환됩니다.

 bash -c "stat /path/todir/**"

그러면 모든 .include가 반환됩니다. & ..는 제외되어야 합니다.

bash -c "stat /path/todir/.*"

이것은 작동하지만 bash -c에서는 작동하지 않으며 두 줄이 필요합니다

shopt -s dotglob
stat /path/todir/**

이것도

stat /path/todir/!(.|..)

답변1

확장된 glob 옵션은 현재 셸에만 표시됩니다.아니요실행된 서브쉘에. 또한 glob 옵션을 사용할 수 있도록 하려면 하위 쉘에서 이를 설정해야 합니다. 재귀 하강은 다른 확장 옵션이 설정된 경우에만 **발생합니다 globstar. 현재 디렉토리 요구 사항의 경우 간단히 다음을 사용할 수 있습니다.*

bash -c 'shopt -s dotglob; stat /path/todir/*'

전체 쉘 명령 목록에서 작은따옴표를 사용한다는 점에 유의하세요. 더 안전합니다. 불필요한 변수 확장(리터럴 문자열 전달)을 방지하고 인용 문자열을 쉽게 사용할 수 있습니다.

외부 부분을 제어할 수 있는 경우 '..'호출 자체에서 확장 셸 옵션을 다음과 같이 설정할 수 있습니다.

bash -O dotglob -c 'stat /path/todir/*'

즉, find외부 유틸리티와 같은 것을 사용할 수 있는 옵션이 있는 경우 다음을 수행하고 .(현재 디렉터리 이름)을 제외하고 현재 디렉터리의 모든 파일을 포함하고 stat한 번에 전달할 수 있습니다.

find . ! -path . -exec stat {} +

답변2

bash -c -O extglob 'stat /path/todir/!(.|..)'

-O extglob!(pattern-list)부정 연산자를 포함한 추가 패턴 일치 연산자를 활성화합니다 .

[-+]O [shopt_option]
         shopt_option is one of the shell options accepted by the shopt builtin  (see  
         SHELL  BUILTIN  COMMANDS  below). If shopt_option  is  present, -O sets the 
         value of that option; +O unsets it.

If the extglob shell option is enabled using the shopt builtin, several extended pattern matching
operators  are recognized.  In the following description, a pattern-list is a list of one or more
patterns separated by a |.  Composite patterns may be formed using one or more of  the  following
sub-patterns:

      ?(pattern-list)
             Matches zero or one occurrence of the given patterns
      *(pattern-list)
             Matches zero or more occurrences of the given patterns
      +(pattern-list)
             Matches one or more occurrences of the given patterns
      @(pattern-list)
             Matches one of the given patterns
      !(pattern-list)
             Matches anything except one of the given patterns

관련 정보