[linux] 와일드 카드 일치에 따라 현재 및 하위 폴더의 모든 파일을 재귀 적으로 찾을 수 있습니까?

와일드 카드 일치에 따라 현재 및 하위 폴더의 모든 파일을 재귀 적으로 찾을 수 있습니까?



답변

찾기 를 사용하십시오 :

find . -name "foo*"

find시작점이 필요하고 .(점)은 현재 디렉토리를 가리 킵니다.


답변

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.


답변

fd

find너무 느린 경우 fd유틸리티를 사용해보십시오 -간단하고 빠른 대안find 녹 작성은.

통사론:

fd PATTERN

데모:

홈페이지 : https://github.com/sharkdp/fd


답변

find <directory_path>  -type f -name "<wildcard-match>"

와일드 카드 일치에서 일치시킬 문자열을 제공 할 수 있습니다 (예 : * .c (모든 c 파일))