DevTzu
[Linux] 리눅스 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] 리눅스 chmod 명령어 사용법 | 파일 권한 변경
https://devtzu.tistory.com/327
#Linux #리눅스 #find #명령어 #사용법 #파일찾기 #파일검색 #command #-name #-type #-empty #-size
'study' 카테고리의 다른 글
[DATABASE] OLTP와 OLAP의 차이점, 비즈니스 요구사항에 따른 데이터 처리 방법 (0) | 2023.05.02 |
---|---|
[Linux] 리눅스 grep 명령어 사용법 | 파일 내 특정 문자열 찾기 (0) | 2023.05.01 |
[Architecture] 효율적인 로그 모니터링 방법 | 로그 레벨로 구분 Log Level | Java Spring Boot (0) | 2023.04.26 |
[Notion] 노션 데이터베이스 수식(formula) 속성 활용 (1) | 2023.04.25 |
[javascript] 자바스크립트 랜덤함수 random() / 난수생성 / 랜덤숫자 (0) | 2022.12.25 |