용어 앞뒤에 와일드카드 문자와 함께 "찾기"를 사용하는 방법은 무엇입니까?

용어 앞뒤에 와일드카드 문자와 함께 "찾기"를 사용하는 방법은 무엇입니까?

이름에 문자열이 포함된 디렉터리의 모든 파일을 (재귀적으로) 삭제하려고 합니다. 궁극적으로 저는 이렇게 하고 싶습니다.
find . -type f -name '*.m3d*' -delete
하지만 삭제를 실행하기 전에 다음 내용이 포함된 모든 파일이 있는지 테스트합니다.
find . -type f -name '*.m3d*' 그러나 이렇게 하면 불완전한 목록이 반환됩니다.

./Result/h-field (f=15)_1,1.m3d  
./Result/e-field (f=15)_1,1.m3d
./Result/h-field (f=15)_2,1.m3d
./Result/e-field (f=15)_2,1.m3d  

전체 목록은 다음을 통해 볼 수 있습니다.
find . | grep m3d

./Result/e-field (f=15)_1,1_m3d.rex
./Result/h-field (f=15)_1,1.m3d
./Result/e-field (f=15)_1,1.m3d
./Result/h-field (f=15)_2,1_m3d.rex
./Result/e-field (f=15)_2,1_m3d.rex
./Result/h-field (f=15)_2,1.m3d
./Result/e-field (f=15)_2,1.m3d  

find에 대한 매뉴얼 페이지를 읽었는데 처음 시도에서 했던 것처럼 문자열 끝에 와일드카드를 사용할 수 없다고 나와 있습니다. 내 문자열을 포함하지만 반드시 이름 끝에 올 필요는 없는 모든 파일을 삭제하는 좋은 방법은 무엇입니까?

답변1

현재 사용 중인 버전이 무엇인지 잘 모르겠지만 find문자열 끝에서 와일드카드가 작동하지 않는다는 언급을 찾을 수 없습니다.

문제는 파일 이름이 지정되는 방식인 것 같습니다. 검색에 표시되지 않는 파일은 문자열 앞에 점( )이 없고 *.m3d*밑줄( )이 있으므로 지정된 기준에 일치하지 않습니다..m3d_find

이 명령은 find . -type f -name '*m3d*'주어진 예제에서 이러한 파일을 모두 찾을 수 있어야 합니다.

관련 정보