명령을 사용하여 locate
주어진 패턴과 정확히 일치하는 항목을 찾으려고 합니다. 그러나 일치하는 모든 파일이 표시됩니다.
예: 다음과 같은 바이너리를 찾고 싶습니다.마디
하지만 다음 단어가 포함된 모든 일치 항목을 제공합니다.
server2# locate node
/usr/share/man/man9/getnewvnode.9.gz
/usr/share/man/man9/ieee80211_amrr_node_init.9.gz
/usr/share/man/man9/ieee80211_dump_node.9.gz
/usr/share/man/man9/ieee80211_dump_nodes.9.gz
/usr/share/man/man9/ieee80211_find_rxnode.9.gz
/usr/share/man/man9/ieee80211_find_rxnode_withkey.9.gz
/usr/share/man/man9/ieee80211_free_node.9.gz
답변1
을 살펴보면 locate --help
다음을 찾을 수 있습니다.
-r, --regexp REGEXP search for basic regexp REGEXP instead of patterns
--regex patterns are extended regexps
-r
다음 항목에 정규식 패턴을 제공하는 데 사용할 수 있습니다 locate
.
locate -r /node$
보장 /
은 node
파일 이름의 시작 부분에 있습니다. 보장 $
은 node
파일 이름 끝에 있습니다. 이것은 당신에게 줄 것입니다오직정확한 파일 이름과 일치하는 파일.
대소문자를 구분하지 않고 검색하려면( Node
, NODE
, nOdE
등과 일치) 다음을 추가하세요 -i
.
locate -i -r /node$
찾기가 정규 표현식을 지원하지 않으면 grep을 사용할 수 있습니다(Iracicot에서 언급한 대로).
locate node | grep /node$
locate -i node | grep -i /node$
답변2
찾기와 함께 grep을 사용할 수 있습니다
server2# locate node | grep node$
$ 기호는 grep에게 문자열의 끝을 보라고 지시합니다.
답변3
locate
모든 디렉토리와 일치하는 자체 glob을 추가하여 의 암시적 glob을 비활성화합니다 .
locate */node
매뉴얼 페이지에서:
글로빙 문자가 포함되어 있지 않은 경우
PATTERN
찾기는 패턴이 다음과 같이 동작합니다.*PATTERN*
이 구문은 루트를 포함하여 어디에서나 전체 파일 또는 디렉터리 이름과 일치합니다.