-mtime +30을 적용하면 find 명령이 전체 디스크 검색을 수행하는지 아는 사람이 있습니까?
디렉토리 수가 증가함에 따라 find를 실행할 때마다 교착 상태에 빠지는 것이 걱정되고 검색하는 디렉토리 수를 제한하는 방법을 찾으려고 노력하지만 mtime이 정의되어 있어도 여전히 모든 디렉토리를 검색할지 확실하지 않습니다.
답변1
mtime
파일 시스템 계층에서 검색할 위치를 결정하지 않고, 발견된 파일을 테스트하여 수정 시간(30분보다 큰 경우)을 현재 시간과 비교하여 확인합니다.
검색이 발생하는 위치를 제어하려면 검색 중인 경로를 살펴보세요(재귀적으로 또는 비재귀적으로). 예를 들어, -xdev
특정 디렉터리, 특정 파일 시스템 등으로만 (재귀) 검색을 제한 할 수 있습니다 .
확인하다 man find
.
답변2
find
디렉터리 트리가 검색됩니다(반드시 전체 디스크일 필요는 없음).
기본적으로 find
디렉터리는 계층 구조의 모든 파일을 반환하도록 검사됩니다.
시험(예 -mtime
) 반환된 파일을 수정하지 마세요. 일부와 결합하지 않는 한행동(예: -prune
또는 -quit
), 파일 수정 시간은 검색 공간에 영향을 미치지 않습니다.
다양한 방식옵션,시험, 그리고행동매뉴얼 페이지에 설명되어 있습니다.
디렉토리 수가 증가하면 find를 실행할 때마다 교착 상태에 빠질까 봐 걱정되고, 검색하는 디렉토리 수를 제한하는 방법을 찾으려고 합니다.
왜 "정체 상태"가 문제인지 잘 모르겠습니다. 파일이 늘어나면 find
작업량도 늘어납니다. 하지만 항상 이루어져야 합니다.
계층 구조의 어떤 파일이 일치하거나 일치하지 않을 수 있는지에 대한 정보를 알지 못하면 find
어떤 파일 시스템도 도움이 될 수 없습니다 . 가능한 모든 일치 항목을 인쇄하는 유일한 방법은 가능한 모든 파일을 확인하는 것입니다.
이제 가능한 작업을 제한하는 정보가 있는 경우 일부 작업을 추가하여 수행되는 작업량을 줄일 수 있습니다.
답변3
당신이 찾고 있는 것은 옵션입니다 -maxdepth
. find
이 옵션을 사용하여 명령으로 검색되는 디렉터리 수를 제한 할 수 있습니다 . 예를 들어, 다음 명령은 현재 디렉터리 아래의 두 디렉터리로 반복됩니다.
find . -maxdepth 2 -iname '*.txt'
-maxdepth 1
현재 디렉터리만 검색하려면 이 값을 다음으로 변경하세요. 더 많은 디렉터리로 반복하려면 값을 늘리세요.
man
페이지 에서 find
:
-max 깊이 수준은 명령줄 인수 아래 디렉터리의 가장 높은 수준(음수가 아닌 정수) 수준으로 떨어집니다. -maxlength 0은 명령줄 인수에만 테스트와 작업을 적용한다는 의미입니다.
-min 깊이 레벨 레벨(음수가 아닌 정수)보다 낮은 레벨에서는 테스트나 작업을 적용하지 않습니다. -minlength 1은 명령줄 매개변수를 제외한 모든 파일을 처리한다는 의미입니다.
에 어떤 값을 전달하더라도 +mtime
명령을 실행하고 "."를 사용하는 경우에만 find
전체 디스크를 검사합니다 . 첫 번째 옵션으로 지정하거나 명령의 첫 번째 옵션이 이고 언급하거나 가치를 부여하지 않는 경우입니다.find
/
find
/
-maxdepth
-mindepth
예를 들어:
sree@seiko:/ : pwd
/
sree@seiko:/ : find . -iname "*.txt"
sree@seiko:/ :