![Bash 기능이 재귀적으로 작동하지 않습니다.](https://linux55.com/image/105563/Bash%20%EA%B8%B0%EB%8A%A5%EC%9D%B4%20%EC%9E%AC%EA%B7%80%EC%A0%81%EC%9C%BC%EB%A1%9C%20%EC%9E%91%EB%8F%99%ED%95%98%EC%A7%80%20%EC%95%8A%EC%8A%B5%EB%8B%88%EB%8B%A4..png)
디렉토리 구조:
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
-앞으로귀하의 함수에 전달되었습니다.