리눅스 find 명령어

리눅스 find 명령어는 여러가지 다양한 기준으로 파일을 효율적으로 검색할 때 사용할 수 있는 명령어입니다.

특정 파일을 찾거나 특정 문자 패턴에 맞춰서 검색, 특정 확장자의 파일 검색, 특정 소유자, 파일 사이즈, 퍼미션, 등의 다양한 방법을 사용할 수 있습니다.

find 명령어는 파일을 찾는 기본 역할 외에도 찾은 파일에 대한 퍼미션 변경, 소유자 변경, 파일 삭제 등의 추가 작업을 진행할 수 있습니다.

find 명령어

· 파일 및 디렉토리 검색 명령어
· 다양한 조건(이름, 경로, 확장자, 크기, 권한 등)으로 검색 가능
· 와일드카드와 정규표현식 사용 가능
· 특정 사용자 소유의 파일 검색 가능
· 특정 날짜 기준으로 생성/수정된 파일 검색 가능
· 파일 사이즈 기준 검색 가능 (예: 100M 이상)
· 퍼미션 기준 검색 가능 (예: 644, 777 등)
· 검색한 파일에 대해 다음 작업 수행 가능:
→ 삭제 (-delete)
→ 권한 변경 (-exec chmod)
→ 소유자 변경 (-exec chown)
→ 복사 또는 이동
· 자동화 스크립트에서 많이 활용됨

✅ find 명령어 정의

Linux의 find 명령은 계층 구조 내에서 포괄적인 파일 및 디렉터리 검색을 위해 설계 된 동적 유틸리티입니다. 사용자는 이름, 크기, 수정 시간 등을 기준으로 검색할 수 있습니다.

# 기본 사용 옵션 #
find [디렉터리] [-옵션] [표현식]
# 경로 시작 검색
find /path/
# txt. 파일을 경로에서 찾기
find /home/ -type f -name '*.txt'
# txt. 특정 디렉터리 명을 경로에서 찾기
find /home/ -type f -name 'docs'
리눅스 find 명령어(콘솔에서)

✅ 리눅스 find 명령어 옵션

아래 목록은 find 명령 옵션입니다.

✅ find 명령 예시

◻ 자주 사용하는 기본 명령어

# 현재 폴더(이하) 파일 퍼미션을 모두 644로 변경 
find . -type f -exec chmod 644 {} \;   
# 현재 폴더(이하 디렉터리 권한을 755로 변경 
find . -type d -exec chmod 755 {} \;
# 현재 폴더(이하 특정 단어(old)가 포함된 파일을 삭제 
find ./ -type f -name '*.old' -exec rm {} \;  
find ./ -type f -name '*.old' -delete
# 현재 폴더에만 있는 *.old 파일을 찾아서 삭제
find ./ -maxdepth 1 -type f -name '*.old' -exec rm {} \;
# 현재 폴더부터 바로 하위 폴더까지 *.old 파일을 찾아서 삭제\
find ./ -maxdepth 2 -type f -name '*.old' -exec rm {} \;
# 현재 폴더(이하) 디렉토리 갯수 확인 
find ./ -type d | wc -l  

◻ 폴더 지정하여 활용 -maxdepth

-maxdepth 1 옵션의 경우 현재 폴더 내에서만 데이터를 적용하기 때문에 /home/user/public_html/ 폴더에 접속한 상태에서 .txt 확장자 파일을 지운다고 할 경우 아래와 같이 옵션을 사용해서 이하 폴더의 .txt 확장자 파일을 남기고 작업을 할 수 있습니다.

[root@rocky-linux public_html]# pwd
/home/rocky/public_html
find ./ -maxdepth 1 -type f -name '*.txt' -exec rm {} \;

◻ find의 -size 옵션 활용

파일 사이즈에 대한 -size 옵션 활용 방법입니다.

# 5M보다 크고 30M보다 작은 파일 찾기 
find ./ -size +5M -size -30M 
# 512M보다 크고 1024G 보다 작은 파일 찾기 
find ./ -size +512M -size -1024G 
  • c : 바이트
  • k : 키로바이트
  • M : 메가바이트
  • G : 기가바이트
리눅스 기초(The Linux Foundation)

xargs 활용 및 기타 활용

# 현재 디렉토리에서 가장 큰 파일 찾기 
find . -type f | xargs du -s | sort -n | tail -1
# 현재 디렉토리 위치에서 하위디렉토리를 포함하여 string 이란 문자열을 포함한 파일 검색
find . -type f | xargs grep string
# 현재 디렉토리 밑에서 첫글자가 영어 대문자인 모든 파일을 찾을 경우 
find . -name "[A-Z]*'' -print 

grep, du 등의 명령어를 파이프(pipe) 다중 명령어를 사용할 땐 xargs를 같이 사용해 줍니다. xargs의 경우는 find 명령어를 사용하면서 /path 경로에 파일들이 너무 많으면 “Argument list too long”이란 메시지가 나오면서 실행되지 않기 때문에 다른 명령어와 같이 사용할 때 오류 메시지가 나올 때 활용할 수 있습니다.

리눅스 커맨드 라인 인터페이스(Linux command line Interface)

Similar Posts

  • 리눅스 백그라운드(Back Ground)&포그라운드(Fore Ground): 프로세스 제어하기

    리눅스의 프로세스는 백그라운드(Back Ground)와 포그라운드(Fore Ground) 두 가지의 모드로 작동됩니다. 리눅스 백그라운드 작업을 하는 이유는 일반적인 쉘 명령어를 실행했을 때 프로세스가 종료될 때까지 기다리면서 다른 작업을 하지 못하는 경우가 있기 때문입니다. 목차✅ find 명령어 정의✅ 리눅스 find 명령어 옵션✅ find 명령 예시◻ 자주 사용하는 기본 명령어◻ 폴더 지정하여 활용 -maxdepth◻ find의 -size 옵션…

  • echo 명령어: From 확장과 인용

    echo 명령어는 문자열을 그대로 출력해 주는 명령어이다. echo 명령어는 프롬프트에서 사용하는 일은 거의 없으며, 쉘 스크립트 작성 시에 자주 사용하는 명령어이다. 표준 출력 상에 해당 텍스트 인자를 표시한다. 목차✅ find 명령어 정의✅ 리눅스 find 명령어 옵션✅ find 명령 예시◻ 자주 사용하는 기본 명령어◻ 폴더 지정하여 활용 -maxdepth◻ find의 -size 옵션 활용◻ xargs 활용…

  • 리눅스 touch 명령어

    touch 명령어는 파일의 날짜 시간 정보를 변경하는 명령어입니다. 아무 옵션 없이 사용할 경우 파일의 최근 사용 시간, 변경 시간이 서버의 현재 시간으로 변경됩니다. 파일이 없는 파일명을 입력할 경우 새로운 크기가 0인 빈 파일이 생성됩니다. 목차✅ find 명령어 정의✅ 리눅스 find 명령어 옵션✅ find 명령 예시◻ 자주 사용하는 기본 명령어◻ 폴더 지정하여 활용 -maxdepth◻…

  • [Linux] 리눅스 vi 명령어 정리 | Vim 3가지 모드 및 비주얼 모드

    리눅스 터미널에서 ‘.txt’, ‘.conf’ 등의 ASCII 파일을 편집하기 위해 vi 편집기 명령어를 사용합니다. vi 편집기는 명령모드 입력모드와 저장 및 종료 후 치환하는 리눅스 vi 명령어는 익숙해지면 매우 빠른 작업이 가능하기 때문에 효율적인 업무를 진행할 수 있습니다. 목차✅ find 명령어 정의✅ 리눅스 find 명령어 옵션✅ find 명령 예시◻ 자주 사용하는 기본 명령어◻ 폴더 지정하여…

  • 리눅스 uniq 명령어

    리눅스 uniq 명령어는 “unique”의 약자이며, 텍스트 파일에서 중복된 행을 제거하고 하나의 행만 출력하는데 사용됩니다. 중복된 텍스트 데이터를 제거하고 몇 번의 반복이 있었는지 등을 확인할 때 매우 유용하게 사용할 수 있습니다. 목차✅ find 명령어 정의✅ 리눅스 find 명령어 옵션✅ find 명령 예시◻ 자주 사용하는 기본 명령어◻ 폴더 지정하여 활용 -maxdepth◻ find의 -size 옵션 활용◻…

  • [Linux] localectl 명령어

    CentOS 7 버전부터 많은 명령어들이 통합되어 제공됩니다. 로케일 및 키보드 관련 부문은 localectl 명령어에서 제공합니다. locale은 원래 지역이나 장소를 의미하지만, IT 환경에서는 언어 및 지역 설정을 지칭합니다. 리눅스에서는 문자 인코딩, 언어, 날짜/시간, 숫자 등의 지역화 설정을 locale 문자열로 정의합니다. 대부분의 유닉스 및 리눅스 배포판은 POSIX 기반이며, 이는 Red Hat 및 Debian 계열도 포함됩니다….

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다

Prove your humanity: 9   +   6   =