태그 보관물: find

find

locate를 사용하여 디렉토리 찾기 뱉어냅니다. 예를 들어,

내가 사용하는 위치 , 내가 이름을 알고있는 파일을 찾기 위해 모든 시간을 찾을 매우 빠르고, 나는 그것을 사랑 해요. 최근에 만든 파일의 경우 찾기 가 훌륭합니다. 일반적으로 최근에 만든 파일이 있으면 기본적으로 파일이 만들어진 위치를 알고 있으므로 전체 파일 시스템을 검색 할 필요가 없습니다.

디렉토리의 위치를 ​​잊어 버렸을 때 찾지도 찾을 수 없습니다.

디렉토리 내의 모든 파일은 또한 찾기와 일치하기 때문에 찾기는 항상 너무 많은 정보를 뱉어냅니다. 예를 들어, 파일 시스템 어딘가에 log라는 이름의 디렉토리를 검색하는 경우 find log 는 수많은 결과를 반환합니다. find 와 동일한 작업을 수행하면 find / -name log -type d find를 실행하는 데 몇 분이 걸리고 읽을 수없는 폴더가 발생할 때마다 모든 종류의 권한 오류가 발생합니다.

더 좋은 방법이 있습니까?

답 : 그래서 다른 것을 찾을 때까지 grep을 고수합니다.

locatedir () {
    for last; do true; done
    if [[ $last == *\/* ]]
    then
        locate $@ | grep "${last}\$"
    else
        locate $@ | grep "/${last}\$"
    fi
}



답변

방법 (더 나은 방법이있을 것입니다)은 grep을 사용하여 폴더 이름으로 끝나는 경로 만 반환하는 것입니다.

locate foldername | grep /foldername$


답변

다음의 옵션 --regex( -r)을 사용할 수 있습니다 locate.

locate -r '/log$'


답변

시도해 보셨습니까?

locate /home/insertusernamehere/*/filename?

또는

locate file | grep -i '^/home/.*/examplesubdirectory'?

또는 그러한 변형이 있습니까?


답변

여기있어

locatedir () {
    locate "$*" | while read line
    do
    if [ -d "$line" ] ; then echo $line ; fi
    done
}

locatedir $*


답변