find
100%

명령줄 · 레슨 14

find

디렉터리 트리를 이름, 유형, 크기, 시간으로 검색하고 확인한 결과에 작업하는 방법을 배웁니다.

시스템에 수많은 파일이 있을 때 특정 파일을 찾는 것은 어려울 수 있습니다. find 명령어는 이름, 유형, 크기, 수정 시간과 같은 기준을 사용하여 디렉터리 트리를 검색합니다.

검색 시작 위치 선택하기

기본 구문은 다음과 같습니다:

find [PATH] [EXPRESSION]

경로는 시작점을 선택하고 표현식은 그 아래 항목을 선택하거나 항목에 작업을 수행합니다.

예를 들어 /home 디렉터리와 그 하위 디렉터리에서 puppies.jpg라는 파일을 찾으려면 다음과 같이 사용합니다:

$ find /home -name puppies.jpg

검색은 기본적으로 재귀적입니다. 현재 디렉터리 트리를 검색하려면 시작 경로로 .을 사용합니다.

현재 디렉터리와 그 하위에서 이름이 notes.txt인 항목을 찾는 명령어는 무엇인가요?

이름과 유형 일치시키기

find의 가장 일반적인 용도 중 하나는 파일 이름으로 검색하는 것입니다. -name 옵션은 이름을 정확히 일치시키거나 셸 스타일 패턴으로 일치시킵니다.

$ find . -name "*.txt"

와일드카드 패턴은 현재 쉘이 먼저 확장하지 않고 find에 그대로 전달하도록 따옴표로 묶습니다. 대소문자를 무시하려면 -name 대신 -iname을 사용합니다.

검색하려는 항목의 유형을 지정할 수도 있습니다. -type 옵션이 이 용도로 사용됩니다. 예를 들어, 파일 대신 디렉터리를 찾으려면 d를 사용할 수 있습니다.

$ find /home -type d -name MyFolder

이 명령어에서는 유형을 디렉터리인 d로 설정하고 MyFolder라는 이름의 항목을 찾고 있습니다. 일반 파일만 검색하려면 -type f를 사용합니다.

현재 디렉터리 아래에서 이름이 .txt로 끝나는 일반 파일을 찾는 명령어는 무엇인가요?

크기와 수정 시간 일치시키기

파일 크기로 검색할 수 있습니다:

$ find . -type f -size +10M
$ find . -type f -size -1k

대문자 M은 1,048,576바이트 단위이고 소문자 k는 1,024바이트 단위입니다. find는 숫자를 비교하기 전에 크기를 선택한 단위로 올림합니다.

수정 시간으로도 검색할 수 있습니다:

$ find . -type f -mtime -7
$ find . -type f -mtime +30

-mtime은 수정된 뒤 지난 완전한 24시간 단위 수를 검사합니다. -mtime -7은 7보다 작은 값, -mtime +30은 30보다 큰 값과 일치하며 달력의 자정 경계를 기준으로 하지 않습니다.

. 아래에서 수정된 지 완전한 24시간 단위로 7보다 적은 일반 파일을 찾는 명령어는 무엇인가요?

일치 항목 출력 및 작업하기

기본적으로 find는 일치하는 경로를 출력합니다. -print, -delete, -exec와 같은 작업을 추가할 수 있습니다.

일치 항목을 명시적으로 출력하기:

$ find . -name "*.log" -print

각 일치 항목에 대해 ls -l 실행하기:

$ find . -name "*.log" -exec ls -l {} \;

\; 형식에서 {}는 명령어를 실행할 때마다 현재 일치 경로로 바뀝니다. 세미콜론은 -exec 작업의 끝이며 쉘이 find에 전달하도록 이스케이프합니다.

-delete나 파일을 변경하는 -exec 같은 파괴적 작업 전에는 같은 조건에 -print를 붙여 모든 결과를 확인하세요. 좁은 시작 경로와 -maxdepth N으로 범위를 제한할 수도 있습니다.

나중에 오래된 .log 파일을 삭제할 수도 있는 find 명령어를 작성 중입니다. 먼저 무엇을 해야 하나요?

find . -name "*.log" -exec ls -l {} \;에서 {}는 무엇을 나타내나요?

권한 거부 메시지는 보통 현재 계정이 트리 일부를 검색할 수 없음을 뜻합니다. 관련 있는 더 좁은 시작 경로를 선택하고, 확장된 접근을 이해하고 의도하기 전에는 관리자 권한을 추가하지 마세요.

검색 표현식을 만드는 방법은 다음 실습으로 연습해 보세요.

  1. Linux find Command: File Searching - 이 실습은 다양한 기준으로 파일과 디렉터리를 검색하는 다용도 유틸리티인 find 명령어 소개를 제공합니다. 특정 파일을 찾는 연습을 하게 됩니다.
  2. Discover Critical System Resources - find를 포함한 필수 Linux 명령어를 배우고 파일 시스템을 효율적으로 탐색하며 중요한 시스템 리소스를 발견하는 연습을 합니다.

레슨 완료

find 완료

이제 범위가 뚜렷한 find 표현식을 만들고 작업 전에 결과를 검증할 수 있습니다.

  • 유용한 범위에서 가장 좁은 시작 경로를 선택할 수 있습니다.

  • 이름 패턴을 따옴표로 묶고 유형 검사와 결합할 수 있습니다.

  • 크기 또는 완전한 24시간 수정 기간으로 필터링할 수 있습니다.

  • 필요할 때 재귀 깊이를 제한할 수 있습니다.

  • 파괴적 작업 전에 일치 항목을 출력하고 확인할 수 있습니다.

학습 진행 상황 저장

무료 계정을 만들어 이 레슨을 저장하고 어떤 기기에서든 계속 학습하세요.

무료 계정 만들기
다음 수업
명령줄(으)로 돌아가기