본문 바로가기

Linux/명령어

Linux find 명령어 주요 사용법



find ---주어진 파일명과 동일한 파일을 찾고, 그 경로를 출력한다.

 


# find / -name newbie -print

최상위 루트 디렉토리부터 검색하여 검색된 파일을 한 행에 하나씩 표준 출력

# find . -name newbie -print

현제의 작업 디렉토리에서 검색

# find / -size +1000 -print

최상위 루트에서 크기가 1000블록 이상인 파일 검색

# find . -size -1000 -print

현 디렉토리에서 크기가 1000블록 이하인 파일 검색

# find . -mtime +10 -print

10일 이전에 수정된 파일 검색

# find . -mtime -10 exec rm {} \:

10일 이내에 수정한 파일을 검색하여 모두 지운다

# find / -cmin 5 -print

5분전에 마지막으로 수정된 파일을 찾을 수 있다.

# find /home -empty -print

/home 디렉토리에 용량이 0인 파일과 디렉토리를 찾는다.

# find / -perm -4000 -print

퍼미션이 4000 이상인 파일을 모두 출력한다.
 

 


find를 사용해서 원하는 것을 찾아내기
이름 : ulariul   날짜 : 2001-05-18
 
아래는 특정한 문자열을 검색하여 파일명을 출력하여 줍니다.

<b>find . -type f -exec grep "string" /dev/null {} \;</b>

주의할 것은 조건에 맞는 파일의 개수가 많은 경위 쉘의 명령행 버퍼의 범위를 벗어나므로 문제가 생길수 있다는 것입니다.

명령행 버퍼의 오버플로우를 방지하기 위해서 다음과 같이 하십시요.

<b>find . -type f | xargs grep "string"</b>


여기서 string는 검색 문자열입니다
 
 


 암호 파일에서 사용자를 제거하고, 해당 사용자가 소유하고 있는 모든 파일도 제거   이런 종류의 제거는 궁극적으로 완벽한 형태로 사용자를 삭제해 줍니다. 암호 파일에서 해당 사용자의 항목을 삭제하고 시스템으로부터도 해당 사용자의 파일을 삭제해야 합니다.
다음과 같이 find 명령을 사용하여 그렇게 합니다.
  find user' s-home-directory -exec rm {} \;

 

find /tmp -user $LOGNAME -exec rm {} \;

첫 번째 매개변수인 /tmp는 탐색할 디렉토리입니다. 옵션 -user는 지정된 사용자에게 속하는 모든 파일을 탐색하기를 원함을 표시합니다. 명령이 실행되기 전에, 셸은 $LOCNAME을 현재 사용자의 로그인 이름을 대체합니다. 옵션 -exec는 뒤따르는 명령이 find 프로그램에 의해 발견되는 모든 파일에 적용될 것임을 표시합니다. 이 경우에 rm 프로그램이 발견된 파일을 제거하는 데 사용됩니다. 괄호는 rm 명령에 전달되는 각 파일명의 위치를 표현합니다. 마지막 두 문자인 \;는 find 명령에 필수입니다.(셸이 해석하지 않는 프로그램에 문자를 전달하기 위해 역슬래시를 사용하는 예).