[linux] Linux는 주어진 문자열로 파일 이름을 찾습니다.

저는 Ubuntu를 사용하고 있으며 현재 디렉터리 및 이름에 “John”이라는 문자열이 포함 된 하위 디렉터리의 모든 파일을 찾고 싶습니다. grep파일의 내용과 일치 할 수 있다는 것을 알고 있지만 파일 이름과 함께 사용하는 방법을 모릅니다. 어떤 도움을 주시면 감사하겠습니다.



답변

find 명령을 사용하십시오.

find . -type f -name "*John*"


답변

정답이 이미 제공되었지만 스스로를 돕는 방법을 배우기 위해 다른 방법으로 도움이되는 것을 던질 것이라고 생각했습니다. 달성하려는 것을 한 단어로 요약 할 수 있다면 Linux에 강력한 도움말 기능이 있습니다.

man -k <your search term>

짧은 설명에 검색어가 포함 된 모든 명령을 나열합니다. 일반적으로 원하는 것을 찾을 수 있는 좋은 기회가 있습니다 . 😉

이 출력은 때때로 다소 압도적 일 수 있으므로 다음과 같이 사용 가능한 모든 맨 페이지보다는 실행 파일로 범위를 좁히는 것이 좋습니다.

man -k find | egrep '\(1\)'

또는 다음과 같이 더 높은 권한 수준이 필요한 명령도 검색하려는 경우 :

man -k find | egrep '\([18]\)'


답변

find명령은 파일 시스템의 실제 파일을 스캔하므로 시간이 오래 걸립니다.

가장 빠른 방법은 locate즉시 결과를 제공하는 명령을 사용 하는 것입니다.

locate "John"

명령을 찾을 수없는 경우 먼저 mlocate패키지 를 설치 하고 updatedb명령을 실행 하여 검색 데이터베이스를 처음으로 준비해야합니다.

자세한 내용은 https://medium.com/@thucnc/the-fastest-way-to-find-files-by-filename-mlocate-locate-commands-55bf40b297ab


답변

ack를 사용하십시오. 그냥 입력ack <string to be searched>


답변

이것은 tree검색하려는 디렉토리 에서 명령을 사용하는 매우 간단한 솔루션 입니다. -f전체 파일 경로 를 표시하며 이름에 문자열 이 포함 된 파일을 찾기 위해 |tree의 출력을 파이프하는 데 사용됩니다 .grepfilename

tree -f | grep filename


답변