유사한 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 명령은 파일 내용을 검색하는 데 사용됩니다. 예:
/tmp
xyz가 포함된 파일 찾기$ 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로 동일한 작업을 수행하려면 옵션을 추가해야 합니다.