디렉토리에만 찾기를 사용하는 방법


10

"Dropnot"의 다양한 하위 디렉토리에있는 많은 파일을 찾습니다.

$ locate Dropnot

로 디렉토리 위치 찾을 수 있습니까 locate? ( "Dropnot"디렉토리가 있습니다)

그래서 경우 Dropnot/home/me/반환됩니다 유일한 항목의 그.

그렇다면 가장 간단한 방법은 무엇입니까?

파이프 나 그 리핑 등을 사용하는 대신 플래그 나 기호를 사용하는 것이 바람직하지만 옵션으로 사용할 수 있습니다.

어쩌면 줄의 끝으로 일종의 Dropnot $가 있습니까? (하지만 작동하지 않았습니다).

답변:


5

locate디렉토리와 같은 선택된 유형의 파일을 찾는 데 사용할 수있는 옵션은 없지만 질문에서 구문을 사용하여로 Dropnot$끝나는 행을 찾을 수 있습니다 Dropnot. -e그러기 위해서는 POSIX 정규식을 켜 려면 옵션을 사용해야합니다 .

이 경우 다음을 사용해야합니다.

locate -e Dropnot$

위치의 버전이 중요합니다. 내 시스템 (Gentoo Linux)에서 Secure Locate가 있습니다.

$ locate --version
Secure Locate 3.1 - Released March 7, 2006

의 답변에 대한 --basename옵션 이 없습니다 uther. 이 옵션은 findutils 패키지에서 GNU Locate에 의해 제공됩니다.

$ ./locate --version
locate (GNU findutils) 4.4.2

GNU Locate와 함께 regexp를 사용하려면 -r대신 switch를 사용해야 합니다 -e.


1
되지는입니다 -e옵션 only print entries for currently existing files?
phuclv

10

나는 한 mlocate설치. RedHat에 의해 배포되는 기본값이므로 Fedora, RHEL, CentOS에 있습니다. 에서man 1 locate

-b, --basename
       Match  only  the  base  name  against the specified patterns. This 
       is the opposite of --wholename.

따라서를 실행하면 locate -b '\Dropknot'정확히 해당 문자열을 가진 파일 또는 디렉토리 만보고합니다.

Because \ is a globbing character, this disables the implicit replacement 
of NAME by *NAME*.

locate -b /Dropnot근무
Michael Durrant

4

GNU locate를 사용하면 (다른 locate 구현은 다를 수 있습니다) :

locate '*/Dropnot'
locate Dropnot | grep '/Dropnot$'

인수에 와일드 카드가 없으면 locate지정된 검색어가 하위 문자열로 포함 된 경로를 찾습니다. 인수가 하나 이상의 와일드 카드 문자를 포함하는 쉘 패턴 인 locate경우 완전한 일치를 찾습니다. /Dropnot끝에 를 출력하지 않으려면 :

locate -0 '*/Dropnot' | xargs -0 -n1 dirname
locate Dropnot | sed -n 's:/Dropnot$::p'

0

RedHat을 사용하는 경우 Secure Locate가 아닌 mlocate를 설치했을 수 있습니다. 이 경우 -e 옵션이 없으며 기본 정규 표현식을 사용하여 검색하려면 -r 또는 --regexp를 사용해야합니다.


0

슬랙웨어는 slocate기본적으로 옵션을 사용하여 정규식 검색을 사용합니다 r .

locate -r '/Dropnot$'

라는 디렉토리를 검색합니다 Dropnot.

이것은 예 : 검색 할 번호 를 전용 Dropnot디렉토리 (Dropnot1, Dropnot2 등) :

locate -r '/Dropnot[[:digit:]]\+$'

0

왜 아무도 그런 것을 제안하지 않았는지 모르겠다 :

for i in $(locate MYDIR); do [ -d "$i" ] && echo $i; done

이것은 찾기 문자열 중 하나가 디렉토리인지 확인하고 인쇄합니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.