[Linux] 파일찾기(find) 명령어 사용법
- Server/Linux
- 2022. 8. 11.
Find 명령어
리눅스에서 파일을 찾기 위해서는 find 명령어를 사용합니다. find 명령어의 다양한 옵션으로 파일을 찾을 수도 있고, 다른 옵션등을 조합하여 내용을 검색할 수도 있습니다.
find [경로] [옵션] [대상]
# find --help
Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]
default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:
operators (decreasing precedence; -and is implicit where no others are given):
( EXPR ) ! EXPR -not EXPR EXPR1 -a EXPR2 EXPR1 -and EXPR2
EXPR1 -o EXPR2 EXPR1 -or EXPR2 EXPR1 , EXPR2
positional options (always true): -daystart -follow -regextype
normal options (always true, specified before other expressions):
-depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
--version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race
tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
-cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
-ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
-links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
-nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
-readable -writable -executable
-wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
-used N -user NAME -xtype [bcdpfls]
-context CONTEXT
actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
-fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
-exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
-execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;
Find 주요 옵션 [1]
옵션 | 설명 |
name [파일명] | 지정된 이름의 파일을 찾는다. |
user [유저명] | user 소유의 파일을 찾는다. |
type [bcdfls] | 지정된 형식의 파일을 찾는다. b : 블록파일 c : 문자 d : 디렉터리 f : 파일 l : 링크파일 s : 소켓 |
size [+/-]숫자[bckw] | 지정된 크기의 파일을 찾는다. +n : n보다 크다 -n : n보다 작다 n : n이다 b : 512-byte c : byte k : kilobytes w : 2-byte |
mtime [+/-]숫자 | - +n : n일 전에 수정된 파일을 찾는다. -n : n일 동안 수정된 파일을 찾는다. |
atime [+/-]숫자 | 엑세스 시간을 기준으로 찾는다. |
표준출력으로 검색된 파일명을 출력한다. | |
exec {} | 찾은 파일에게 특정 명령어를 실행한다 (ex: 복사, 삭제 등) |
Find 예제
find 명령어로 폴더를 지정 할 때 . 을 입력하면 현재 폴더 및 하위(서브) 폴더를 기반으로 탐색하며, /를 입력하면 전체 폴더를 지정한다.
파일명으로 찾기 (-name)
# 현재 및 서브 폴더를 검색하여 test가 들어간 파일을 찾는다
find . -type f -name "*test*"
# 모든 폴더를 검색하여 test가 들어간 파일을 찾는다
find / -type f -name "*test*"
생성시간으로 찾기 (-mtime)
# 최근 365일안에 변경된 파일을 찾는다
find / -mtime -365
문자열 찾기 (xargs grep)
# 현재 폴더 및 서브 폴더에 있는 log 파일 중, python이 들어간 문자열을 찾으시오
find . -type f -name '*.log' | xargs grep 'python'
찾은 파일 액션 (exec)
# tensor 문자열이 들어간, log 파일을 현재 및 하위 디렉토리에서 찾고 있을 경우 log폴더에 복사한다
sudo find . -type f -name '*.log' -exec cp {} /log \; | xargs grep 'tensor'
참고자료
[1] https://itwiki.kr/w/%EB%A6%AC%EB%88%85%EC%8A%A4_find
반응형
'Server > Linux' 카테고리의 다른 글
[Linux] 백그라운드로 작업 시키는 명령어(nohup) 사용법 정리 (0) | 2023.06.15 |
---|---|
크론탭(crontab) 에디터(editor) 변경 하기 (0) | 2022.10.19 |
리눅스(Linux) vi 편집기 명령어 모음 (0) | 2022.10.01 |