검색을 위한 간단한 CLI 도구

검색을 위한 간단한 CLI 도구

유사한 CLI 도구가 있습니까 gnome-search-tool? 을 사용하고 있지만 locate디렉터리 이름 일치에 대한 결과를 그룹화하는 것을 선호합니다. 내가 원하는 결과가 아닌 많은 경로 일치 결과를 얻었습니다.

/tmp/dir_match/xyz
/tmp/dir_match/xyz2/xyz3

충분히 빨라야 하므로 검색 색인을 사용해야 합니다.

답변1

후지브일반적인 명령줄 퍼지 파인더입니다.

그들의 github 페이지는https://github.com/junegunn/fzf

답변2

표준 Linux 명령은 다음과 같습니다.

  • find파일 이름을 찾는 명령입니다. 예:

    • xyz라는 파일 찾기/tmp

      $ find /tmp -type f -name xyz
      
    • 이름에 "xyz"가 포함된 디렉토리 찾기/tmp

      $ find /tmp -type d -name '*xyz*'
      
  • find 및 grep 명령은 파일 내용을 검색하는 데 사용됩니다. 예:

    • /tmpxyz가 포함된 파일 찾기

      $ find /tmp -type f -exec grep -l xyz {} \;
      

답변3

locate매우 다재다능하고 -r 및 정규식 패턴을 사용할 수 있으므로 복잡한 일치 항목을 많이 수행할 수 있습니다. 예를 들어 디렉터리 a a0 a1등을 일치시키려면 를 사용합니다. 경로에 두 번째 디렉터리가 '/a[0-9]*/'필요하므로 파일이 있는 디렉터리만 표시됩니다 . /디렉터리를 개별적으로 일치시키려면 를 사용하여 $패턴을 경로 끝에 고정합니다 '/a[0-9]*$'.

최소 2개의 버전이 있습니다 locate. 그 중 하나는 다음 중 하나입니다.암소 비슷한 일종의 영양, Redhat의 것(mlocate라고 함)이 있습니다. --version가지고 있는 것을 찾는 데 사용됩니다 . 정규식 스타일은 약간 다릅니다. 예를 들어, 일치 자체를 피하는 대신 위 패턴을 '/a[0-9]*$'사용하도록 변경하면 mlocate는 require를 사용하는 반면 gnu는 을 사용합니다 .+*a\++

예를 들어 디렉터리 a와 그 아래의 모든 항목을 일치시키려면 두 버전 모두에 사용할 수 있습니다.

locate -r '/a\(/\|$\)'

mlocate의 경우 --regex확장 구문을 접두사로 사용할 수 있습니다.

locate --regex '/a(/|$)'

--regextype egrep예를 들어, gnulocate로 동일한 작업을 수행하려면 옵션을 추가해야 합니다.

관련 정보