[linux] 와일드 카드 일치에 따라 현재 및 하위 폴더의 모든 파일을 재귀 적으로 찾을 수 있습니까?
와일드 카드 일치에 따라 현재 및 하위 폴더의 모든 파일을 재귀 적으로 찾을 수 있습니까?
답변
답변
grep으로 찾는 배관이 더 편리합니다. 임의의 와일드 카드 일치를 위해 정규식의 모든 기능을 제공합니다.
예를 들어 파일 이름에서 대소 문자를 구분하지 않는 문자열 “foo”가있는 모든 파일을 찾으려면 다음을 수행하십시오.
~$ find . -print | grep -i foo
답변
find
패턴과 일치하는 모든 파일을 찾습니다.
find . -name "*foo"
그러나 사진을 원한다면 :
tree -P "*foo"
도움이 되었기를 바랍니다!
답변
find -L . -name "foo*"
몇 가지 경우에는 기호 디렉토리 링크를 처리하기 위해 -L 매개 변수가 필요했습니다. 기본적으로 심볼릭 링크는 무시됩니다. 이 경우 디렉토리를 하위 디렉토리로 변경하고 패턴과 일치하는 파일을 보지만 파일 이름을 반환하지 않으므로 상당히 혼란 스러웠습니다. -L을 사용하면 해당 문제가 해결됩니다. 찾기에 대한 기호 링크 옵션은 -P -L -H입니다.
답변
쉘 이 새로운 글 로빙 옵션을 지원 하는 경우 (으로 활성화 할 수 있음 shopt -s globstar
) 다음을 사용할 수 있습니다.
echo **/*foo*
파일이나 폴더를 재귀 적으로 찾을 수 있습니다. 이것은 Bash 4, zsh 및 유사한 쉘에서 지원됩니다.
개인적 으로이 쉘 함수를 정의했습니다.
f() { find . -name "*$1*"; }
참고 : 위의 행은 쉘에 직접 붙여 넣거나 사용자 ~/.bashrc
파일에 추가 할 수 있습니다.
그런 다음 다음을 입력하여 파일을 찾을 수 있습니다.
f some_name
또는 간단한 구문 으로 fd
유틸리티 를 사용할 수 있습니다 ( 예 🙂 fd pattern
.
답변
답변
find <directory_path> -type f -name "<wildcard-match>"
와일드 카드 일치에서 일치시킬 문자열을 제공 할 수 있습니다 (예 : * .c (모든 c 파일))