«   2024/11   »
1 2
3 4 5 6 7 8 9
10 11 12 13 14 15 16
17 18 19 20 21 22 23
24 25 26 27 28 29 30
Archives
Today
Total
11-11 05:43
관리 메뉴

DevTzu

[Linux] 리눅스 find 명령어 사용법 | 파일찾기, 파일검색 본문

study

[Linux] 리눅스 find 명령어 사용법 | 파일찾기, 파일검색

DevTzu 2023. 4. 30. 09:00
반응형

리눅스 find 명령어 사용법

 

 

- find 명령어
리눅스에서 find 명령어는 지정된 디렉토리 하위의 파일 및 디렉토리를 검색하는 유용한 명령어입니다.
find 명령어는 특정 파일 이름, 크기, 소유자, 그룹, 수정 일자 등의 속성을 기반으로 파일을 검색할 수 있습니다.

 

리눅스 find 사용법

find [path] [expression]

# 현재 위치에서 name이 들어가는 파일 모두 찾기
find . -name "*name*"

path는 검색을 시작할 디렉토리를 나타내며, expression은 검색 조건을 정의합니다.

expression은 -name, -size, -user, -group, -mtime 등의 검색 조건을 포함할 수 있습니다.

 

 

[경로]

검색을 시작할 path 를 입력합니다.

현재 위치에서 검색한다면 (.)을 입력하면 됩니다.

상대 경로, 절대 경로 모두 가능하며 /home/user 와 같이 입력할 수 있습니다.

 

[표현식]

  • name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음
  • type : 지정된 파일 타입에 해당하는 파일 검색
  • user : 해당 유저에게 속한 파일 검색
  • empty : 빈 디렉토리 혹은 크기가 0인 파일 검색
  • delete : 검색된 파일 혹은 디렉토리 삭제
  • exec : 검색된 파일에 대해 지정된 명령 실행
  • path : 지정된 문자열 패턴에 해당하는 경로에서 검색
  • print : 검색 결과를 출력. 검색 항목은 newline으로 구분(기본 값)
  • print0 : 검색 결과를 출력. 검색 항목은 null로 구분
  • size : 파일 크기를 사용하여 파일 검색
  • mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정
  • maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정
  • atime : n일 이내에 액세스된 파일을 찾음
  • ctime : n일 이내에 만들어진 파일을 찾음
  • mtime : n일 이내에 수정된 파일을 찾음
  • cnewer file : 해당 파일보다 최근에 수정된 파일을 찾음

이 표현식은 중첩을 통해 검색 대상 범위를 더 줄일 수도 있습니다.

 

 

 

리눅스 find 사용 예시 

- 파일명으로 찾기 (-name)

# 현재 디렉토리에서 log가 포함되는 파일 찾기
find . -name "*log*"

# 현재 디렉토리에서 .java 확장자 모두 찾기
find . -name "*.java"

# 현재 디렉토리에서 .log 확장자 파일 검색 후 모두 삭제
find . -name "*.log" -delete

# 현재 디렉토리에서 date로 시작되는 파일 찾기
find . -name "date*"

# 현재 디렉토리에서 index로 끝나는 파일 찾기
find . -name "*index"

가장 많이 사용되는 표현식은 name입니다. 

와일드 카드 * 를 포함하여 자신이 원하는 파일들과 확장자들을 찾아서 나열할 수 있습니다.

 

 

 

- 타입으로 찾기 (-type)

# 현재 디렉토리에서 모든 디렉토리 찾기
find . -type d

# 현재 디렉토리에서 log가 들어가는 디렉토리 찾기
find . -name "*log*" -type d

# 현재 디렉토리에서 모든 파일 찾기
find . -type f

type 을 사용해서 특정 파일 타입만 따로 추출할 수도 있습니다.

  • d : 디렉토리
  • f : 일반적인 파일
  • l : 심볼릭 링크

 

 

 

- 파일 크기로 찾기 (-empty, -size)

# 현재 디렉토리에서 빈 디렉토리이거나 크기가 0인 파일 검색
find . -empty

# 현재 디렉토리에서 log가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제
find . -name "*log*" -empty -delete

# 현재 디렉토리에서 1024byte인 파일 검색
find . -size 1024c

# 현재 디렉토리에서 1024byte보다 큰 파일 검색
find . -size +1024c

# 현재 디렉토리에서 1024byte보다 작은 파일 검색
find . -size -1024c

# 현재 디렉토리에서 1kb보다 크고 10kb보다 작은 파일 검색
find . -size +1k -size -10k

empty를 사용하여 빈 디렉토리나 크기가 0인 파일을 찾을 수도 있습니다.

size를 사용하여 파일의 크기로 대상을 찾을수도 있습니다.

  • b : 블록단위
  • c : byte
  • k : kbyte
  • w : 2byte 워드

 

 

 

- 검색된 파일에서 추가 명령 실행하기 (-exec)

# 현재 디렉토리에 "prod"가 들어가는 파일을 찾아서 상세정보 출력
find . -name "*prod*" -exec ls -l {} \;

# 현재 디렉토리에 있는 파일에서 "dev"가 들어가는 내용 찾기 
find . -type f -exec grep "dev" {} \;

# 현재 디렉토리에 ".log" 확장자를 찾아서 모두 삭제
find . -name "*.log" -exec rm {} \;

exec를 사용하여 검색한 대상에 추가 명령어를 수행할 수도 있습니다.

 

 

 

 

[Linux] 리눅스 grep 명령어 사용법 | 파일 내 특정 문자열 찾기

https://devtzu.tistory.com/324

 

[Linux] 리눅스 grep 명령어 사용법 | 파일 내 특정 문자열 찾기

- grep 명령어 리눅스에서 'grep' 명령어는 파일 내용에서 특정 문자열을 검색하는 유용한 명령어입니다. 'grep' 명령어는 정규 표현식을 사용하여 검색 패턴을 정의하고, 해당 패턴이 포함된 모든

devtzu.tistory.com

 

 

[Linux] 리눅스 chmod 명령어 사용법 | 파일 권한 변경
https://devtzu.tistory.com/327

 

[Linux] 리눅스 chmod 명령어 사용법 | 파일 권한 변경

- chmod 명령어 리눅스에서 "chmod"는 파일 및 디렉토리의 권한을 변경하는 명령어입니다. "chmod"는 "change mode"의 줄임말입니다. 리눅스 파일 시스템은 파일과 디렉토리에 대한 세 가지 유형의 권한을

devtzu.tistory.com

 

 

 

 

#Linux #리눅스 #find #명령어 #사용법 #파일찾기 #파일검색 #command #-name #-type #-empty #-size

반응형
Comments