한국어

EDPS

Linux Find Option 명령 2가지

조회 수 134 추천 수 0 2017.08.09 16:38:03

이번에 서버 작업을 하면서 무식하게 폴더를 뒤지지 말고 명령어를 통해서 작업을 하자는 생각에 인터넷을 뒤진 내용과 Linux 확인 내용을 정리하여 봅니다


find 명령어로 특정날자의 시간이전/후에 수정 또는 생성된 파일을 찾을 때 사용한 방법이 2가지 있습니다.

1. -a/c/mtime (min) 옵션

   > -atime : access time (min)

   > -ctime : changed time (min)

   > -mtime : modified time (min)

2. -newer 옵션

   > -newerct : create time

   > newermt : modified time

   > newerat : access time


1번 예시]

수정한지 특정일자 지난 파일 찾기

#find ./folder_name -type f -mtime +30


수정한지 특정일째 되는 파일 찾기

#find ./folder_name -type f -mtime 30


수정한지 특정일자 안되는 파일 찾기

#find ./folder_name -type f -mtime -30



2번 예시]

특정 날자 이후 생성된 파일 찾기

# find ./folder_name -type F - newerct 2017-08-01


특정 날자 이전에 생성된 파일 찾기

#find ./folder_name -type f ! -newerct 2017-08-08


일정 기간내의 생성된 파일 찾기

#find ./foler_name -type f -newerct 2018-08-01 ! -newerct 2017-08-08



확장 예시]

위 예시를 이용하여 -exec 또는 pipe line(|)를 통하여 여러 작업을 수행


일정 시간내에 생성된 파일을 삭제 시

#find ./folder_name -type f -newerct 2017-08-01 ! -newerct 2017-08-08 -exec rf -f {} \;


일정 시간내에 생성된 파일의 압축 시

#find ./folder_name -tyoe f -newerct 2017-08-01 ! -newerct 2017-08-08 | xargs tar -cvf 20170801_08.tar



수텐리

2017.08.09 16:40:54
*.118.25.1

o 기본 구조 : find [경로][옵션][작업]

 

o 경로

   ./ / ./[디렉토리] 등의 경로를 줄 수 있음

 

o 옵션

   -name [파일명] : 지정된 이름의 파일을 찾음

                          (와일드 카드 사용시 역슬레시를 같이 주거나, 따옴표로 묶어야 함)

 

    -user [사용자이름] : 지정된 사용자의 파일을 찾음

    -nouser : 파일의 소유자가 없는 파일을 찾아줌

 

    -group [그룹이름] : 지정된 그룹 소유의 파일을 찾음

    -nogroup [그룹이름] : 소유자가 아닌 그룹을 찾음

 

    -perm [모드] : 파일 퍼미션 조건이 맞는 것만 찾아줌

 

    -type [bcdflps] : 파일 타입을 지정하여 찾아 줌

                             b : 블럭 디바이스

                             c : 캐릭터 디바이스

                             d : 디렉토리

                              f :  일반 파일

                              l : 심볼릭 링크파일

                             p : 파이프

                             s : 소켓

   -size [+/-]n[bckw] : 지정된 크기의 파일을 찾음

                             +n : n보다 큼

                             -n : n보다 작음

                              b : 512-byte

                              c : byte

                              k : kilobytes

                              w : 2byte

 

  -inum [number] : 특정 inode 번호화 파일을 찾음

 

  -atime [+n/-n/n] : 최근 n일 이전에 액세스된 파일을 찾음

                             +n : -n일 또는 그보다 더 오래전

                             -n : 오늘 부터 n일 전까지

                              n : n일 전에 액세스

  -ctime [+n/-n/n] : atime 과 비슷하나 파일을 변경 시킨 날자를 의미 함

 

  -cnewer [파일명] : "파일명" 부분에 적어준 파일보다 더 최근에 수정된 파일들을 찾음

 

  -link [n] : n개의 링크를 가진 파일을 찾아줌

 

  -depth : 경로를 함께 보여 줌

 

  ! : 각 옵션 앞에 붙이면 not의 의미를 갖음

 

  -print : 검색된 파일명을 표준 출력 함

  --help : 도움말

 

o 작업

  -exec [명령어] {} \;  : 찾은 각 파일에 대해 지정된 명령을 실행함

  -ok [명령어] {} \;     : 실행여부를 사용자에게 확인한 후 명령을 실행함

 

o 예제

-  홈 디렉토리 아래에 있는 확장자가 txt인 모든 파일을 확인하면서 지움

  # find $HOME -name '*.txt' -type f -ok rm {} \;

  # find $HOME -name '*.txt' -type f -exec rm {} \;   --> 묻지 않고 바로 지움

 

- 현재 디렉토리 아래에서 test 라는 파일을 찾을때

  # find ./ -name test -print

 

- 루트 디렉토리에서 .py 로 끝 나는 파일을 출력 할때

  # find / -name \*.py -print

  # find / -name '*.py' -print

 

- 현재 디렉토리 아래의 서브디렉토리를 모두 출력

  # find ./ -type d -print

 

- 현재 디렉토리 아래에서 소문자로 시작 하지 않는 파일을 검색

  # find ./ ! -name '[a-z]*' -type f -print

 

- 현재 디렉토리 아래에서 확장자가 c나 o 인 파일을 찾으면서 5일 이내에 수정 된 것 출력

 # find ./ -atime -5 \( -name '*.c' -o -name '*.o' \) -print

 # find ./ ! \( -atime -5 \( -name '*.c' -o -name '*.o' \) \) -print  

        --> 조건을 만직 하지 않을 때 찾기

 

- 파일의 크기가 0인 파일을 찾을 때

 # find / -size 0 -print

 

- 홈 디렉토리 아래에서 파일의 크기가 1MB 이상인 파일을 찾아서 자세히 보고 싶을 때

 # find ~ -size +1024k -exec ls -l {} \;

 

- 디렉토리명이 board로 시작하지 않는 디렉토리만 지우기

 # find ./ -mindepth 1 -maxdepth 1 ! -name 'board*' -type d -exec rm -rf {} \;

 

* UNIX 마다 옵션의 차이가 있음으로 'man find' 확인 하고, 지우는 작업은 ls 명령으로 미리 확인

   하시면 실수를 줄일 수 있습니다.


펌] http://blog.naver.com/putter?Redirect=Log&logNo=18107175

List of Articles
번호 제목 글쓴이 날짜 조회 수
184 [Java] 자바 날짜, 시간 계산 예제 (1) 수텐리 2018-04-03 448
183 [Java] 자바 시간, 날짜 계산 (2) 수텐리 2018-04-03 163
182 온라인 무료 강좌 수텐리 2018-03-29 27
181 Linux Command - CPU 성능값 수텐리 2018-03-22 27
180 구글 차트 (썬구루님의 블로그) 수텐리 2018-03-22 79
179 성능 모니터링 - Collectd 수텐리 2018-03-22 30
178 성능 모니터링 - Apache JMeter [1] 수텐리 2018-03-22 44
177 암호화폐와 끊을 수 없는 연결고리, 블록체인 수텐리 2018-03-20 191
176 프로젝트 자동화 환경 구축 (SVN, Redmine, Hudson, Ant, maven, nexus) [2] 수텐리 2018-03-09 123
175 youtube에서 영상 Download 수텐리 2017-09-26 60
174 브랜드 PC 및 노트북 옵션키 (Boot, Recovery, CMOS, Wifi) WindBoy 2017-09-14 47
173 Linux 명령 [2] WindBoy 2017-08-25 57
172 리눅스 명령어 모음(용도별) [1] WindBoy 2017-08-25 401
» Linux Find Option 명령 2가지 [1] 수텐리 2017-08-09 134
170 [IT열쇳말] 옵티마이즐리 WindBoy 2017-07-05 91
169 랜섬웨어 WindBoy 2017-07-05 43
168 위챗(Wechat)이란? WindBoy 2017-06-15 202
167 레코벨 외부 연동 Rest API WindBoy 2016-11-10 109
166 레코벨 외부 Guide WindBoy 2016-11-10 456
165 컴퓨터에 새로운 장비를 탑제하당 (SSD 256Gb) file WindBoy 2016-06-01 35