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 명령어의 입력값으로 사용)