검색이 조회보다 빠릅니다.

검색이 조회보다 빠릅니다.

find.나는/지금 하고 있습니다:- 보다 더 나은 것이 있습니까?

$sudo find / -perm +4000

하지만 필요한 정보를 찾는 데는 오랜 시간이 걸립니다. 특정 권한 비트를 설정하는 대부분의 파일은 정적/비동적이라는 것을 알고 있습니다.

나는 노력했다

[$] sudo locate --all / -perm +4000                                                                                               
locate: invalid option -- 'p'

그러나 실패했다고 볼 수 있습니다. 동일한 작업을 수행하기 위해 위치 찾기를 사용하는 방법에 대한 아이디어가 있습니다.

단지 공유는 /usr/bin/locate심볼릭 링크되어 있고, /etc/alternatives/locate공유는 심볼릭 링크되어 있습니다./usr/bin/mlocate

답변1

안타깝게도 파일 권한을 색인화하지 않으므로 이 기능이 있는 위치 구현을 찾거나 직접 확장 하지 않는 mlocate한 파일 시스템 검색을 사용해야 합니다 .findmlocate

답변2

@shirish가 언급했듯이 mlocate는 파일 권한을 색인화하지 않습니다. 하지만 아직 몇 가지 제안사항이 있습니다.

먼저 find 매뉴얼에서 -perm +mode는 더 이상 사용되지 않으므로 대신 -perm /mode를 사용해야 합니다.

- 파마+모드

패턴 세트에 권한 비트가 있는 파일을 검색하기 위한 오래되고 더 이상 사용되지 않는 방법입니다. 대신 -perm /mode를 사용해야 합니다. 기호 모드에서 "+" 구문을 사용하려고 하면 놀라운 결과가 생성됩니다. 예를 들어 "+u+x"는 유효한 기호 모드(+u, +x, 즉 0111과 동일)이므로 -perm +mode로 평가되지 않고 정확한 모드 지정자 -perm mode로 평가되므로 일치합니다. 실행 비트가 설정된 파일이 아니라 정확한 권한 0111을 가진 파일입니다. 이 단락이 혼란스럽다면 혼자가 아닙니다. -perm /mode를 사용하세요. 이러한 형태의 -perm 테스트는 더 이상 사용되지 않습니다. POSIX 사양에서는 선행 "+"가 기호 패턴의 일부로 해석되어야 하므로 대신 "/"를 사용하기 때문입니다.

-파마/모드

파일에 대한 권한 비트 패턴을 설정합니다. 이 형식은 기호 패턴을 허용합니다. 기호 모드를 사용하는 경우 "u", "g" 또는 "o"를 지정해야 합니다. 몇 가지 예시를 보려면 예제 섹션을 참조하세요. 패턴에 권한 비트가 설정되지 않은 경우 이 테스트는 모든 파일과 일치합니다(여기서 아이디어는 -perm -000의 동작과 일치한다는 것입니다).

둘째, 검색 속도를 높일 수 있습니다. 이를 위해서는 최대한 구체적이어야 합니다. 예를 들어:

find /some/path ...

전체 루트 디렉터리(/)를 검색하는 대신 검색 경로(/some/path)를 지정하므로 검색 시간이 단축됩니다.

마지막으로 검색 중에 검사하지 않으려는 시스템 폴더를 제외할 수 있습니다. 예를 들어:

 find /some/path -not \( -path /excluded/path -prune \) -name *.js

관련 정보