리눅스 파일 시스템내에서 파일을 검색하는 데 사용되는 명령어
다양한 표현식을 사용하여 원하는 파일의 목록을 추출가능.
리눅스 find 사용법
find [옵션] [경로] [표현식]
현재 위치에서 study가 들어가는 파일 모두 찾기
ex) find . -name "*study*"
- 옵션
P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
L : 심볼릭 링크에 연결된 파일 정보 사용.
H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
D : 디버그 메시지 출력.
- 경로
find의 인자값으로는 경로를 받습니다.
상대 경로, 절대 경로 모두 가능하며 대부분의 리눅스의 경우 이 경로 인자 값을 생략한다면 현재 위치(.)를 입력받은 것으로 간주하지만
유닉스의 경우 이 경로를 입력받지 않으면 명령어 실행이 안되니 유의.
- 표현식
size : 파일 크기를 사용하여 파일 검색.
mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
atime : n일 이내에 액세스된 파일을 찾음.
ctime : n일 이내에 만들어진 파일을 찾음.
mtime : n일 이내에 수정된 파일을 찾음.
cnewer file : 해당 파일보다 최근에 수정된 파일을 찾음.
name : 해당 이름의 파일을 찾음. 해당 이름에는 정규 표현식을 활용할 수 있음
type : 지정된 파일 타입에 해당하는 파일 검색
user : 해당 유저에게 속한 파일 검색
empty : 빈 디렉토리 혹은 크기가 0인 파일 검색
delete : 검색된 파일 혹은 디렉토리 삭제
exec : 검색된 파일에 대해 지정된 명령 실행
path : 지정된 문자열 패턴에 해당하는 경로에서 검색.
print : 검색 결과를 출력. 검색 항목은 newline으로 구분. (기본 값)
print0 : 검색 결과를 출력. 검색 항목은 null로 구분.
사용 예시
파일명으로 찾기 (-name)
- 현재 디렉토리에서 study가 포함되는 파일 찾기
find . -name "*study*"
- 현재 디렉토리에서 .txt 확장자 모두 찾기
find . -name "*.txt"
- 현재 디렉토리에서 .txt 확장자 파일 검색 후 모두 삭제
find . -name "*.txt" -delete
- 현재 디렉토리에서 study로 시작되는 파일 찾기
find . -name "study*"
- 현재 디렉토리에서 study로 끝나는 파일 찾기
find . -name "*study"
타입으로 찾기 (-type)
- 현재 디렉토리에서 모든 디렉토리 찾기
find . -type d
- 현재 디렉토리에서 study가 들어가는 디렉토리 찾기
find . -name "*study*" -type d
- 현재 디렉토리에서 모든 파일 찾기
find . -type f
type 을 사용해서 특정 파일 타입만 따로 추출할 수도 있습니다.
- d : 디렉토리
- f : 일반적인 파일
- l : 심볼릭 링크
파일 크기로 찾기 (-empty, -size)
- 현재 디렉토리에서 빈 디렉토리이거나 크기가 0인 파일 검색
find . -empty
- 현재 디렉토리에서 test가 들어가는 빈 디렉토리이거나 크기가 0인 파일 검색하여 삭제
find . -name "*test*" -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 워드
'리눅스 > 명령어' 카테고리의 다른 글
리눅스 (tar,gz,zip) 압축 및 압축 해제 방법 (0) | 2022.04.18 |
---|---|
리눅스 - tail (실시간 로그 보기) (0) | 2022.04.12 |
리눅스 - touch (파일생성, 갱신) (0) | 2022.04.12 |
리눅스 - mkdir (디렉토리 생성) (0) | 2022.04.12 |
리눅스 - rm (파일,디렉토리 삭제) (0) | 2022.04.12 |