FreeBSD에서 파일을 찾는 방법


14

example.filenameFreeBSD 서버에서 모든 사본을 찾으려고 합니다. 가장 좋은 방법, 가장 쉬운 방법, 가장 효율적인 방법은 무엇입니까?


1
대답은 비슷하지만 Linux를 사용하고 있는지 FreeBSD를 사용하고 있는지 명확히하고 싶을 수 있습니다. 그들은 같은 것이 아닙니다.
Greg Hewgill

OS를보다 구체적으로 만들기 위해 제목을 수정했습니다
Ian

이것은 아마도 FreeBSD로 태그되어야하지만 그렇게 할 평판이 없습니다.
mikl

답변:


18
find / -name example.filename

2
신뢰성은 있지만 느립니다. 때로는 매우 느립니다.
dmckee --- ex-moderator 고양이

3
필요에 따라 적절할 수있는 다른 'find'플래그 : -type f (동일한 이름을 가진 디렉토리 또는 심볼릭 링크를 신경 쓰지 않음) -ls (예 : 파일 크기가 같은 경우 파일 크기가 같은 경우) 이름이지만 내용이 다름)
Zac Thompson

19
locate filename

보다 훨씬 빠르기 때문에 find, 경우에 당신은이 서비스를 찾아 실행하고, 그리고 그것은 단지 시간에 존재하는 파일 발견 updatedb(cron 작업의 통제하에 befor을하는 데는 보통 밤) 마지막으로 실행합니다.

당신 updatedb 손으로 달릴 있지만, 그것은 훨씬 느립니다.find 김근삼 제안 , 루트가 필요합니다. 나는 때때로 많은 새로운 것들을 설치 한 후 손으로 데이터베이스를 업데이트합니다.


3
찾기는 찾기 DB를 빌드하기 위해 서비스를 실행하는 경우에만 작동합니다 (호출 된 것을 잊어 버리십시오). 또한 찾고있는 파일이 마지막 빌드 이후에 추가되었을 수 있기 때문에 시간 지연이 발생할 수 있습니다.
cletus 2016

편집 및 주석은 와이어에서 교차했습니다. 멋있는. 물론 당신은 두 가지면 모두에 있습니다.
dmckee --- ex-moderator 고양이

4
find /일주일에 한 번 이상 큰 나무에서 일하는 것을 발견 하면 locate서비스 를 실행하는 것이 locate(1)훨씬 빠르기 때문에 아마도 가치 가 있습니다.
Drew Stephens

@cletus Running sudo periodic weeklylocate데이터베이스를 업데이트 합니다. 원하는 파일이 포함 된 설치 또는 다운로드 후에 실행하십시오.
Basil Bourque

2

위치 (일명 slocate)가 설치되어 있다면

locate example.filename

locate는 매일 밤 cron 작업을 실행하여 시스템의 모든 파일을 다시 색인화합니다. 그런 이유로 항상 최신 상태는 아닙니다.


2

때로는 특정 디렉토리 수준에서 파일을 찾으려고합니다. 이 경우 쉘 와일드 카드를 사용하는 것이 편리 할 수 ​​있습니다.

ls /data/*/example.filename

분명히 이것은 견고한 디렉토리 구조가있는 경우에만 작동합니다.


1

locate

다른 사람들이 언급했듯이 locate파일을 찾는 가장 빠른 방법입니다. 이 명령은 파일 및 폴더 이름의 사전 컴파일 된 색인을 사용합니다. 파일 시스템을 크롤링하지 않고이 이름의 데이터베이스를 검색합니다.

locate example.filename 

대소 문자를 구분하지 않으려면을 추가하십시오 -i.

locate -i eXAmPle.FileName

locate데이터베이스 업데이트

에서 사용하는 데이터베이스 locate는 최신이어야합니다. 원하는 파일이 포함 된 설치 또는 다운로드를 수행 한 후 locate데이터베이스 를 업데이트해야 합니다.

그만큼 locate데이터베이스는 결국 FreeBSD 시스템에 의해 자동으로 업데이트됩니다. 이 작업을 포함하는 매주 집안일이 있습니다. 이 집안일은 /etc/periodic/weekly/310.locate스크립트에 나열되어 있습니다.

locate데이터베이스를 조기에 업데이트하는 가장 안전한 방법 은 매주 집안일을 강제로 수행하는 것입니다.

sudo periodic weekly

또는 모든 정기적 인 집안일을 강요 할 수도 있습니다. 새로운 FreeBSD 시스템을 설치 한 직후에이를 수행 할 수 있습니다.

sudo periodic daily weekly monthly

다른 방법을 사용하여 locate데이터베이스 를 업데이트하는 경우 안전하지 않다는 메시지가 표시되어 FreeBSD 시스템의 모든 사용자에게 모든 시스템 파일 이름이 표시 될 수 있습니다. periodic경로를 사용 하면이 문제를 피할 수 있습니다.


0

찾기 데이터베이스가 최신 인 경우 다음을 수행하십시오.

locate example.filename

0

나는 때때로


  find . | grep example.filename

그러나 아마도 비효율적 일 것입니다.


예, 그것은 모든 것을 일치시키고 당신이 찾고있는 그 이름을 제외하고 모든 것을 버립니다. 대신 'find -name "example.filename"'을 사용하면 모든 것을 먼저 인쇄하거나 추가 grep 프로세스를 실행하지 않고도 정확히 동일한 작업을 수행 할 수 있습니다.
Mihai Limbăşan
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.