find command
find [OPTION...] [PATH] [EXPRESSION...]
OPTION
-P : 심볼릭 링크를 따라가지 않고, 심볼릭 링크 자체 정보 사용.
-L : 심볼릭 링크에 연결된 파일 정보 사용.
-H : 심볼릭 링크를 따라가지 않으나, Command Line Argument를 처리할 땐 예외.
-D : 디버그 메시지 출력.
EXPRESSION
-name : 지정된 문자열 패턴에 해당하는 파일 검색.
-empty : 빈 디렉토리 또는 크기가 0인 파일 검색.
-delete : 검색된 파일 또는 디렉토리 삭제.
-exec : 검색된 파일에 대해 지정된 명령 실행.
-path : 지정된 문자열 패턴에 해당하는 경로에서 검색.
-print : 검색 결과를 출력. 검색 항목은 newline으로 구분. (기본 값)
-print0 : 검색 결과를 출력. 검색 항목은 null로 구분.
-size : 파일 크기를 사용하여 파일 검색.
-type : 지정된 파일 타입에 해당하는 파일 검색.
-mindepth : 검색을 시작할 하위 디렉토리 최소 깊이 지정.
-maxdepth : 검색할 하위 디렉토리의 최대 깊이 지정.
-atime : 파일 접근(access) 시각을 기준으로 파일 검색.
-ctime : 파일 내용 및 속성 변경(change) 시각을 기준으로 파일 검색.
-mtime : 파일의 데이터 수정(modify) 시각을 기준으로 파일 검색.
-type 표현식은 파일 종류를 지정하여 검색이 가능
b : block special
c : character special
d : directory
f : regular file
l : symbolic link
p : FIFO
s : socket
-size 표현식은 기본적으로 block 단위(512B)의 크기를 사용
파일 크기 값 뒤에 'c' 또는 'k'를 이용하여
바이트 단위 또는 킬로바이트의 크기 값을 지정
b:block
c:bytes
w:2bytes
k:kbytes
M:mbytes
G:gbytes
-maxdepth 표현식을 사용하면 검색할 하위 디렉토리의 깊이를 제한
find / -name [NAME] # 루트에서 NAME 파일을 검색.
find . -name "STR*" # STR로 시작되는 모든 파일을 검색
find . -empty # 빈 디렉토리 나 size가 0인 파일 검색.
find . -name TMP -empty # TMP 이름을 가진 디렉토리 또는 크기가 0인 파일 검색.
find . -name [FileName] -print0 # 검색된 결과 줄 바꿈 없이 출력
# -print0 는 newLine의 기능을 제거하여 출력하라는 명령
find . -name [FileName] -print # 검색된 결과 줄 바꿈 출력.
find . -name [FileName] -type f # [FileName] 이름을 가진 일반 파일 검색.
find . -name [DirName] -type d # [DirName] 이름을 가진 디렉토리 검색
find . -size +512c -size -10248c # 파일size가 512 바이트 보다 크고 1024 바이트 보다 작은 파일을 검색
find . -name "*.java" -exec ls -l {} \; # 현재 디렉토리에서 java 확장자 파일의 상세 정보 출력.
find . -name "*.java" -exec grep "main" {} \; # .java 파일에 문자열 main이 있는지 검색.
find . -name "*.java" -exec grep -n "import" {} \; # .java 파일에 문자열 import가 있는 라인 표시.
find / -name "*.c" 2> /dev/null # 에러 메시지를 출력하지 않음 표준 에러(2)를 "/dev/null"로 redirection
find / -maxdepth 1 -name "findName" # findName라는 파일을 루트(/)경로 에서만
# 검색하고 하위 디렉토리는 검색하지 않음
find . -name "*.tar " -exec cp {} /mnt/share/ \; # ar 파일을 /mnt/share/ 에 copy
#해당일(실행시키는일자)서 일반파일을 찾아 삭제
find . -ctime 1 -type f -print ! -exec rm -rf {} \;
#해당일(실행시키는일자)서 일반파일을 찾아 file size가 0보다 크면 삭제
find . -ctime 1 -type f -size +0 -print ! -exec rm -rf {} \;
#해당일(실행시키는일자)서 디렉토리를 찾아 삭제
find . -ctime 1 -type d -print ! -exec rm -rf {} \;
2021.01.13 aix find in file context (0) | 2021.01.13 |
---|---|
2020.01.06 리눅스 date (0) | 2021.01.06 |
2020.12.15 hosts.allow와 hosts.deny (0) | 2020.12.15 |
2020.12.15 check ssh running debug mode (0) | 2020.12.15 |
2020.12.15 sftp does not have password(암호없이 sftp 사용) (0) | 2020.12.15 |
댓글 영역