본문 바로가기
OS/Ubuntu

Ubuntu find 검색 명령어

by 아우럼 2025. 4. 10.
반응형

Linux 환경에서 파일 및 디렉토리를 검색하는 데 필수적인 도구로 사용하는 find 명령어에 관해서 설명합니다.

 

Ubuntu find 명령어 설명

  • find 명령어는 Ubuntu뿐만 아니라 Linux 환경에서 파일 및 디렉토리를 검색하는 데 필수적인 도구로, 강력한 기능과 유연성을 제공합니다. 
  • Ubuntu의 find 명령어는 기본적으로 특정 디렉토리에서 파일이나 디렉토리를 검색하기 위해 사용됩니다. 
  • find 명령어는 옵션을 사용하여 파일 이름뿐만 아니라 파일의 크기, 종류, 소유자, 수정 시간 등 다양한 조건을 설정하여 유연하게 검색할 수 있습니다.
  • find 명령어는 다양한 조건과 옵션을 조합하여 복잡한 검색 작업을 수행할 수 있으며, 자동화된 작업에서도 매우 유용합니다. 
  • 그러나 검색 속도나 명령어의 복잡성 등 몇 가지 단점이 있으므로 사용 시 이를 고려해야 합니다. 
  • 옵션과 명령어를 충분히 숙지하고 연습하면 find를 더욱 효과적으로 활용할 수 있습니다.
  • find 명령어 사용법을 알기 위해서는 find --help나 man find를 통해 사용법을 알 수 있다.
aurumguide@Ubuntu:$ man find
aurumguide@Ubuntu:$ find --help

Ubuntu find 검색 명령어.
Ubuntu find 검색 명령어.

Ubuntu find 명령어 옵션

  • Linux의 디렉토리, 파일 시스템은 구조는 아주 많은 수의 파일과 디렉토리가 계층 구조로 되어 있어 매주 복잡합니다.
  • 즉, 비슷한 이름의 파일과 동일한 확장자를 가진 파일, 그리고 종류가 다양한 파일들이 Linux 시스템의 한 종류로 ubuntu OS 동일하게 복잡한 구조로 되어 있습니다.
  • 이에 따라, ubuntu의 복잡한 구조에서 사용자가 원하는 파일을 가능한 한 정확히 찾을 수 있도록, find 명령에는 다양한 옵션이 존재합니다.
  • 이번 글에서는 모든 옵션은 설명하지 못하고 자주 사용하는 옵션, 표현식 위주로 설명하고, 추가적인 설명이 필요하면은 답글로 작성하면 보충하려고 합니다.
  • 인터넷 글도 중요하기만 원하는 기능을 사용할 때는 find --help, man find 통해서 사용법을 익히는 습관은 매우 중요합니다.

find [OPTION...] [PATH] [EXPRESSION...]
OPTION
    -P   : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체의 속성에서 가져올 때 사용합니다.
    -L   : 링크 자체가 아닌 링크가 가리키는 파일의 속성에서 가져올 때 사용.
    -H  : 심볼릭 링크가 가리키는 파일을 조사할 수 없는 경우 링크 자체에 대한 정보가 폴 백으로 사용됩니다. 
    -D  : 디버그 메시지 출력할 때 사용합니다.

EXPRESSION
     -name   : 지정된 문자열 패턴에 해당하는 파일 검색 합니다.
     -iname   : 대소문자 구분 없이 이름을 검색합니다.       
     -empty  : 빈 디렉토리 또는 크기가 0인 파일 검색 합니다.
     -delete  : 검색된 파일 또는 디렉토리 삭제합니다.
     -exec    : 검색된 파일에 대해 지정된 명령 실행합니다.
     -path     : 지정된 문자열 패턴에 해당하는 경로에서 검색합니다.
     -print     : 검색 결과를 출력. 검색 항목은 newline으로 구분합니다.
     -print0   : 검색 결과를 출력. 검색 항목은 null로 구분합니다.
     -size     : 파일 크기 기준으로 파일 검색 합니다.
     -type   : 파일 타입을 지정하여 해당 확장자를 가진 파일만 검색합니다.
     -mindepth  : 검색을 시작할 하위 디렉토리 최소 깊이 지정합니다.
     -maxdepth  : 검색할 하위 디렉토리의 최대 깊이 지정합니다.
     -atime   : 파일 접근(access) 시각을 기준으로 파일 검색 합니다.
     -ctime    : 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색 합니다.
     -mtime   : 파일의 데이터 수정(modify) 시각을 기준으로 파일 검색 합니다.
GLOBAL OPTIONS
    f    : 일반 파일을 검색합니다.
    d   : 디렉토리를 검색합니다.
    l    : 심볼릭 링크 검색합니다.

 

Ubuntu find 명령어 예제 및 사용법

Ubuntu find 명령어 기본 문법

find [경로] [조건] [작업].

[경로]: 검색을 시작할 디렉토리(예: /, /home/user, . 등)를 지정합니다.

[조건]: 검색 조건(예: 이름, 크기, 소유자 등)을 지정합니다.
 find . -name [FILE] : 현재 디렉토리 아래 모든 파일 및 하위 디렉토리에서 파일 검색합니다.
 find / -name [FILE] : 전체 시스템(루트 디렉토리)에서 파일 검색합니다(속도 느림).
 find . -name "aurum*" : 파일 이름이 "aurum" 문자열로 시작하는 파일 검색 합니다.
 find . -empty : 빈 디렉토리 또는 크기가 0인 파일 검색합니다.

[작업]: 검색 결과에 수행할 작업 합니다(선택적).
 find . -name [FILE] -exec ls -l {} \; : 검색된 파일에 대한 파일 상세 정보 출력합니다. (ls 파일정보를 출력하는 명령어)
 find . -name [FILE] -exec cp {} [PATH] \; : 검색된 파일을 지정한 디렉토리에 복사하는 명령어입니다.
 find . -name [FILE] > [SAVE_FILE] : 검색 결과를 파일로 저장하는 명령어입니다. 

Ubuntu find 명령어 예제.

1. Ubuntu find 명령어로 특정 파일 이름 검색합니다.(기본값은 대소문자를 구분합니다.)

aurumguide@Ubuntu:$ find /path/to/search -name "filename"

 

2. Ubuntu find 명령어로 특정 파일 이름 검색합니다. 단, 대소문자를 구분하지 않고 검색합니다.

aurumguide@Ubuntu:$ find /path/to/search -iname "filename"


3. Ubuntu find 명령어로 특정 확장자의 파일 검색 합니다.

aurumguide@Ubuntu:$ find /path/to/search -name "*.txt"

 

4. 예제 명령은 150MB보다 큰 파일을 검색합니다. 여기서 +는 초과를 의미하며, -는 이하를 뜻합니다.

aurumguide@Ubuntu:$ find /path/to/search -size +150M


5. Ubuntu find 명령어로 최근 수정된 파일 검색 합니다.

  • 예제는 최근 7일 이내에 수정된 파일을 검색합니다. 
  • -mtime은 파일의 "수정 시간"을 기준으로 합니다.
aurumguide@Ubuntu:$ find /path/to/search -mtime -7

 

6. Ubuntu find 명령어로 특정 사용자 소유의 파일 검색 합니다.

aurumguide@Ubuntu:$ find /path/to/search -user username

 

7. Ubuntu find 명령어로 찾은 파일을 바로 삭제합니다.

  • delete 옵션은 검색된 파일을 바로 삭제합니다.
aurumguide@Ubuntu:$ find /path/to/search -name "*.tmp" -delete

 

8. Ubuntu find 명령어로 찾은 파일에 대해 바로 실행하는 옵션입니다.

  • exec는 검색된 파일에 대해 특정 명령을 실행할 때 사용됩니다.
aurumguide@Ubuntu:$ find /path/to/search -type f -exec ls -l {} \;

 

9. Ubuntu find 명령어로 계층 구조의 단계를 지정하여 검색합니다.

  • -maxdepth 옵션은 검색할 디렉토리의 단계를 제한합니다.
aurumguide@Ubuntu:$ find /path/to/search -maxdepth 2 -name "*.sh"

 

Ubuntu find 명령어 장점, 단점

Ubuntu find 명령어 장점.

  • 강력한 검색 능력: 단순히 파일 이름만 찾는 것이 아니라, 파일의 속성(크기, 시간, 소유자 등)까지도 검색 기준으로 설정할 수 있어 매우 유용합니다.
  • Ubuntu에서 find 명령어는 자주 사용하는 top 10 명령어에 들어오는 명령어입니다.
  • 유연성: 여러 조건을 조합하여 복잡한 검색을 수행할 수 있습니다. 예를 들어, 특정 크기와 이르면 조건을 동시에 설정할 수 있습니다.
  • 대규모 파일 시스템에서 효율적: 대규모 디렉토리 구조에서도 정확하게 필요한 파일만 빠르게 찾아낼 수 있습니다.
  • 자동화 작업에 적합: -exec, -delete와 같은 옵션을 통해 검색된 파일에 대해 추가 작업을 자동으로 수행할 수 있습니다.
  • 운영체제 내장: 별도의 설치 없이 모든 주요 Linux 배포판에서 기본적으로 사용할 수 있습니다.
    즉, Ubuntu OS 동일하게 사용할 수 있습니다.

Ubuntu find 명령어 단점.

  • 검색 속도 문제: 조건이 복잡하거나 대규모 파일 시스템에서 사용하면 속도가 느려질 수 있습니다. 
    Ubuntu 대규모 파일 시스템은 locate 명령어가 더 빠를 수 있습니다.
  • 사용자 경험: 초보 사용자에게는 명령어와 옵션이 복잡하게 느껴질 수 있습니다. 
    특히 -exec 같은 고급 기능은 익숙해지기까지 시간이 걸립니다.
  • 심볼릭 링크 문제: 기본적으로 심볼릭 링크를 따라가지 않습니다. 
    이를 해결하려면 추가 옵션(-L)을 설정해야 합니다.
  • 구문 오류 가능성: 옵션 조합이 많으므로 구문 오류를 범하기 쉬워, 명령어 작성 시 주의가 필요합니다.
반응형