답변:
find 명령을 사용하십시오.
find . -type f -name "*John*"
#!/bin/bash if [ -z $1 ]; then echo "Error: Specify pattern for search"; else /usr/bin/find . -type f -name "*$1*"; fi
그냥 실행 할 것이다 F search-string
완벽한 바로 가기로
[ -z "$1" ]
조금 더 좋을 것입니다.
if [ -z ]
. 구문 오류라고 생각했지만 작동합니다. 이제부터는 일부 코드를 단순화 할 수 있습니다.
정답이 이미 제공되었지만 스스로를 돕는 방법을 배우기 위해 다른 방법으로 도움이되는 것을 던질 것이라고 생각했습니다. 달성하려는 것을 한 단어로 요약 할 수 있다면 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>