Section 4.4: 시스템에 존재하는 파일 위치 찾기

bash 에서는 locate 명령어를 이용하여 손쉽게 특정 파일의 위치를 검색할 수 있다. 예를 들어, 사용자가 mykey.pem 이라는 이름의 파일을 찾고자 한다면:

locate mykey.pem

때로는 파일들이 독특한 이름을 가지고 있는 경우도 있다. 예를 들어 사용자의 파일 중 하나의 이름이 다음과 같다고 가정해보자: random7897_mykey_0fidw.pem. 만약 이 파일을 찾고자 하나 파일 이름 중에서 mykey 부분과 pem 부분밖에 기억이 나지 않는다고 하면, 이들을 locate 명령어와 grep 명령어를 파이프를 통해 결합하여 사용할 수 있다:

locate pem | grep mykey

위 명령어 실행 시, 두 부분 모두를 파일 이름 내에 포함하는 모든 검색 결과를 출력해 줄 것이다.

한가지 유의할 점은, 모든 시스템들이 locate 유틸리티를 기본 탑재하고 있지는 않으며, 탑재한 시스템들도 이를 활성화 해 놓지 않은 경우가 많다는 것이다. locate 는 빠르고 효율적이지만 이는 해당 툴이 주기적으로 사용자의 시스템을 스캔하여 모든 파일들의 이름과 위치 정보를 캐시해 놓기 때문이며, 이러한 캐시 데이터가 활성화 되어 있지 않은 경우에는 어떠한 결과도 얻을 수가 없게 된다. 사용자는 updatedb 명령을 이용해서 파일시스템 상의 파일들에 대한 정보 업데이트를 위한 스캔 작업을 가동시킬 수 있다.

동작 가능한 locate 가 존재하지 않는 경우, 차선책으로 find 유틸리티를 사용할 수 있다:

find / -name mykey.pem -print

위 명령은 대체적으로 locate mykey.pem 명령을 수행하는 것과 동일하나, 캐시된 정보를 활용하는것이 아닌, 명령 수행시마다 주어진 파일 검색을 위해 사용자의 파일시스템을 스캔하여야 한다. 이는 명백히 속도상으로도 느리고 비효율적인 작업이긴 하나, 보다 실시간에 가까운 결과를 얻을 수 있다. find 유틸리티는 단순히 파일을 찾아주는 것 외에도 많은 기능을 제공하지만, 해당 유틸리티의 모든 기능을 나열하는 것은 이 예제의 범위를 벗어나는 것이므로 생략한다.

본 문서는 Linux Notes for Professionals (라이센스:CC-BY-SA) 를 한글로 번역한 문서입니다. 번역상 오류가 있을 수 있으므로 정확한 내용은 원본 문서를 참고하세요.

[출처] https://books.goalkicker.com/GitBook/

반응형

+ Recent posts