전역 패턴과 일치하는 파일을 나열하는 방법은 무엇입니까?

전역 패턴과 일치하는 파일을 나열하는 방법은 무엇입니까?

이와 유사한 질문에 대한 다양한 답변을 읽고 시도했지만 특정 사용 사례에서는 작동하지 않습니다(또는 적어도 작동하게 할 수는 없습니다).

여러 파일을 게시하기 위해 glob 패턴을 지정할 수 있는 CI 빌드 파이프라인이 있습니다. 패턴은 "dir/subdir/**/*.ext"와 유사합니다. 내가 원하는 것은 이러한 파일을 게시하기 전에 이 패턴과 일치하는 파일 목록을 출력하는 것입니다.

나는 시도했다:

find . -path 'dir/subdir/**/*.ext'
ls 'dir/subdir/**/*.ext'

여러 순열이 비슷한 결과를 반환하는 것으로 보입니다.

위의 내용은 find아무것도 반환하지 않습니다. 참고로 실행하면 find . -path '**/*.ext'반환됩니다.

./dir/subdir/debug/file1.ext
./dir/subdir/debug/file2.ext
./dir/subdir/publish/file1.ext

명령 ls반환ls: cannot access 'dir/subdir/**/*.ext': No such file or directory

처리하기 전에 일치하는 파일 목록을 얻을 수 있는 방법이 있습니까? 그렇다면 어떻게 해야 합니까?

추가 정보: 파일 목록을 얻으려는 이유는 패턴과 일치하는 파일이 없으면 CI 단계가 실패하기를 원하기 때문입니다.

답변1

@muru의 의견은 정확합니다. 단, 내 질문에 추가 세부 정보를 추가하는 것을 잊어버렸습니다. 즉, 일치하는 파일이 없으면 빈 목록을 원한다는 것입니다(그래서 스크립트가 실패할 수 있음).

이 추가 배경을 사용하여 이를 달성하는 방법은 다음과 같습니다.

shopt -s globstar nullglob; printf %s\\n dir/subdir/**/*.ext

감사해요이 답변추가 nullglobs의 경우.

관련 정보