Bash 기능이 재귀적으로 작동하지 않습니다.

Bash 기능이 재귀적으로 작동하지 않습니다.

디렉토리 구조:

one.pdf
./subdir/two.pdf
./anothersubdir/ three.pdf

내가 입력할 때:

find ./ -type f -name "*.pdf"    

하위 디렉토리를 포함하여 모든 PDF를 검색합니다.

배쉬 기능

function getext {find ./ -type f -name "$1"}

bashrc에서 이 기능을 사용하려면 다음을 입력하십시오.

getext *.pdf

"one.pdf"만 검색하고 나머지는 검색하지 않습니다.

질문: 이 기능은 어떻게 되나요? 첫 번째 파일을 가져오고 중지하는 stdin과 비교하여 무엇이 빠졌습니까?

당신의 도움을 주셔서 감사합니다.

답변1

"*.pdf"당신이 주장에서 언급한 것과 같은 이유로find ~에당신의 기능, 당신이 할 때부르다기능:

getext "*.pdf"

그렇지 않으면 쉘은 *.pdf현재 디렉토리의 파일 이름을 일치시키려고 시도하여 이를 확장합니다. 이 경우에는 one.pdf-앞으로귀하의 함수에 전달되었습니다.

관련 정보