"find -name *.jks"가 일부 파일을 반환하지 않는 이유는 무엇입니까? [복사]

"find -name *.jks"가 일부 파일을 반환하지 않는 이유는 무엇입니까? [복사]
find . -name *.jks -print 2>/dev/null

파일 확장자를 반환합니다.그렇게밑줄 없음이름의 일부로. 놀랍게도 *가 밑줄을 대체하지 않는다는 사실을 발견했습니다.

find . -name *_*.jks -print 2>/dev/null

파일 확장자를 반환합니다.저것밑줄이 있습니다.

밑줄이 0개 이상 포함된 파일을 검색하는 방법은 무엇입니까? OSX Mountain Lion을 사용합니다.

답변1

내가 아는 모든 버전은 find밑줄과 와일드카드를 일치시킵니다.

이 작업을 수행할 때는 주의하세요.

find . -name *.jks -print 2>/dev/null

*.jks" "는 find 명령을 실행하기 전에 쉘에 의해 확장될 수 있습니다.

예를 들어

$ mkdir foo
$ touch a.jks foo/a.jks foo/b.jks
a.jks
$ find . -name *.jks -print
./a.jks
./foo/a.jks

이는 실제로 전화를 걸기 때문에 find . -name a.jks -print예를 들어 찾을 수 없기 때문입니다 b.jks.

와일드카드 표현을 인용하면 운이 더 좋을 수도 있습니다.

$ find . -name "*.jks" -print
./a.jks
./foo/a.jks
./foo/b.jks

나는 확실히 달리고 있다

$ find . -name "*.jks" -print

밑줄이 있거나 없는 모든 파일을 제공합니다.

관련 정보