[Linux] find 명령어 사용법
포스트
취소

[Linux] find 명령어 사용법

find 명령어 사용법

find 명령어란?

walk a file hierarchy

특정 조건을 만족하는 파일들을 찾을 때 사용한다.

find 명령어 사용법

1
find [-H | -L | -P] [-EXdsx] [-f path] path ... [expression]

아무것도 없이 명령어만 실행하면 현재 디렉토리 하위의 모든 디렉토리 및 파일을 출력해준다.

find 명령어 옵션

옵션 너무 많다

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
-empty
    빈 디렉토리나 크기가 0인 파일 검색

-ctime n[smhdw]
    (change time)
    파일의 내용 및 속성이 변경된 시간을 기준으로 파일 검색

-exec utility [argument ...] ;
    검색된 파일들에 대해서 명령(utility) 실행
	 
-name pattern
    이름이 pattern에 해당하는 파일 검색

-size n[ckMGTP]
    파일의 크기로 검색
    k	     kilobytes (1024 bytes)
    M	     megabytes (1024 kilobytes)
    G	     gigabytes (1024 megabytes)
    T	     terabytes (1024 gigabytes)
    P	     petabytes (1024 terabytes)

-type t
    지정한 파일 타입에 해당하는 파일 검색
    b	     block special
    c	     character special
    d	     directory
    f	     regular file
    l	     symbolic link
    p	     FIFO
    s	     socket

이외에 많은 옵션이 있다.

find 명령어 사용 예시

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 find / \! -name "*.c" -print
    파일명이 '.c'로 끝나는 파일을 제외한(\!) 모든 파일들의 목록 출력

 find / -newer ttt -user wnj -print
    "wnj" 라는 이름의 유저가 소유권을 가졌으며, "ttt" 라는 파일보다 더 최근에 생성된 파일들의 목록 출력 

 find / \! \( -newer ttt -user wnj \) -print
    "wnj" 유저가 소유하지도 않았고 (and) "ttt" 라는 파일보다 더 최근에 생성되지도 않은 모든 파일들의 목록 출력

 find / \( -newer ttt -or -user wnj	\) -print
    "wnj" 유저가 소유했거나 (or)  "ttt" 라는 파일보다 더 최근에 생성된 모든 파일들의 목록 출력

 find / -newerct '1	minute ago' -print
    inode 변경 시간이 현재 시간에서 1분을 뺀 시간보다 최근인 모든 파일들의 목록 출력 

 find / -type f -exec echo {} \;
    모든 파일들(-type f)의 목록을 echo 명령어의 입력값으로 사용

 find -L /usr/ports/packages -type l -exec rm -- {}	+
    /usr/ports/packages 디렉토리에 있는 모든 심볼릭 링크 중 broken symbolic links(이동되었거나 존재하지 않는 대상을 가리키는 링크)들을 삭제(rm 명령어의 입력값으로 사용)

-exec 명령어 사용법

find 명령어 exec 옵션 사용법 참고

참고 자료

이 기사는 저작권자의 CC BY 4.0 라이센스를 따릅니다.

[Linux] bash 쉘 스크립트 함수 사용법

[Linux] bash 쉘 스크립트 배열(Array) 사용법