저는 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
명령을 실행 하여 검색 데이터베이스를 처음으로 준비해야합니다.
답변
ack를 사용하십시오. 그냥 입력ack <string to be searched>
답변
이것은 tree
검색하려는 디렉토리 에서 명령을 사용하는 매우 간단한 솔루션 입니다. -f
전체 파일 경로 를 표시하며 이름에 문자열 이 포함 된 파일을 찾기 위해 |
tree의 출력을 파이프하는 데 사용됩니다 .grep
filename
tree -f | grep filename