Find 명령어
GUI 기반인 윈도즈와는 달리 리눅스에서는 Terminal을 사용하기 때문에 파일 및 디렉터리를 찾기가 쉽지 않습니다. 이럴 때 find 명령어를 잘 사용한다면 사용 편의성이 좋아집니다. find 명령어에는 여러 옵션들이 존재하는데 천천히 알아보도록 하겠습니다.
리눅스 Terminal에 man find를 입력하면 아래와 같은 Manual이 출력된다.
위의 Manual을 요약해보면...
find [-P] [-L] [-H] [-D] [starting-point] [expression]
P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
L : 심볼릭 링크에 연결된 파일 정보 사용.
H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
D : 디버그 메시지 출력.
starting-point : 검색을 시작할 경로
expression
-name : 지정된 이름 파일 검색
-empty : 빈 파일이나 디렉토리 검색
-delete : find 명령어로 검색된 파일을 삭제. 단독으로 사용 불가.
-exec : 검샌 된 파일에 추가 명령 실행.
-path : 특정 경로에서 파일 검색
-print : 검색 결과를 출력. newline으로 구분. (기본 값)
-print0 : 검색 결과를 출력. null로 구분.
-size : 파일 크기로 검색 가능함.
-type : 파일 타입으로 검색 가능함.
-mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
-maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
-atime : 파일 접근(access) 시각을 기준으로 파일 검색.
-ctime : 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색.
-mtime : 파일의 데이터 수정(modify) 시각을 기준으로 파일 검색.
find [PATH]
find 명령어만 사용할 경우 현재 디렉토리 내부터 하위 디렉터리까지 파일 및 디렉터리를 검색해준다.
특정 경로를 입력해주면 특정 경로 안의 내용만 확인할 수 도 있다.
find -name [찾는 문자열]
특정 문자열로 된 파일을 찾고자 할때 사용
find -empty
find -name [찾을 파일명] -delete
find -name [찾을 파일명] -exec [실행할 명령어] {} \;
{} 인자는 find -name test2 입력 시 출력되는 결과물이다.
즉, find -name test2의 결과물에 ls -la 한 결과이다.
ls -la ./test2
ls -la ./test2/test2
*주의할 점은 파일 이름이 인자로 들어가지 않는 명령어에 대해서는 {} 인자를 빼야 된다.
find -path [경로]
find [PATH] 하면 해당 경로부터 모든 파일및 디렉토리를 출력해지만
find -path "경로"를 입력하면 해당 경로만 출력해주는데 위의 예시처럼 파일 경로에 test 문자열을 검색하고 싶으면 -path "*test*" 옵션을 사용하면 경로 안에 특정 문자열을 찾는데 확인할 수 있어 보입니다.
find -print0
find -print : 검색한 내용을 줄 바꿈 없이 출력
find -size [prefix : + / -][크기][suffix : b,c,w,k,M,G]
크기는 b옵션이 기본으로 적용되기 때문에 512바이트 블록으로 표현된다. suffix를 추가하여 다른 형태로 표현할 수 있다. 또한 크기의 prefix로 초과 미만을 설정할 수 있다.
Suffix | |
b | 512-byte block size |
c | bytes |
w | two-byte words |
k | kilobytes (1024 bytes) |
M | Megabytes (1048576 bytes) |
G | Gigabytes (1073741824 bytes) |
Prefix |
|
+ | 초과 |
- | 미만 |
find -type [옵션]
특정 형식을 찾고자 할 때 typeㄹ을 사용한다.
옵션 | |
b | block special |
c | character special |
d | directory |
p | named pipe (FIFO) |
f | reqular file |
l | symbolic link |
s | socket |
D | door (Solaris) |
'Linux > Linux 기본 명령어' 카테고리의 다른 글
리눅스(Linux) - 기본 명령어 분석하기 (Linux Basic CLI) (0) | 2021.01.19 |
---|---|
리눅스(LINUX) - 프로세스 관리 및 정보 추출하기, ps 명령어 (ps) (0) | 2021.01.10 |
리눅스(LINUX)-기본 명령어 LS, 옵션 정리 (0) | 2019.11.11 |
리눅스(LINUX) - 소유권 및 권한 변경(chmod, chown, chgrp) (0) | 2019.11.03 |
리눅스(LINUX) - 여러 파일 이름 변경하기 (rename) (0) | 2019.11.01 |