본문 바로가기
UNIX 시스템

find - 10주차 수업 - 2

by 세인트킴 2023. 5. 30.

find

find 경로 검색조건 [동작]

경로

파일을 찾을 디렉토리의 절대, 또는 상대 경로

더보기

/etc /etc 디렉토리에서 찾기 시작(절대 경로)

~ 홈 디렉토리에서 찾기 시작

. 현재 디렉토리에서 찾기 시작

/ /(root)디렉토리에서 찾기 시작(전체 파일 시스템 검색)

unix unix디렉토리에서 찾기 시작(상대 경로)

검색조건

파일을 찾기 위한 검색 기준, and, or을 이용하여 조건 결합 가능

더보기

-name [파일 이름] filename 특정 파일명에 일치하는 파일 검색, 메타문자도 가능하나, " " 안에 있어야 한다.
-type [파일 종류] 특정 파일 종류에 일치하는 파일 검색(f, d)

-mtime [+ | -]n [수정시간] 수정시간이 +n일보다 오래되거나, -n일보다 짧거나 정확히 n일에 일치하는 파일 검색

-atime [+ | -]n [수정시간] 수정시간이 +n일보다 오래되거나, -n일보다 짧거나 정확히 n일에 일치하는 파일 검색

-user loginID [사용자 ID] loginID가 소유한 파일 중 모든 파일 검색

-size [+ | -]n [파일 크기] +n일보다 크거나, -n보다 작거나, 정확히 크기가 n인 파일 검색(n=512 bytes)

-newer [기준 시간] 기준 시간보다 이후에 생성된 파일 검색

-perm [사용 권한] 사용 권한과 일치하는 파일 검색(8진수)

파일 종류 검색

문자 파일 종류 문자 파일 종류 
d 디렉토리 파일 b 블록장치 특수파일
f 일반 파일 c 문자장치 특수파일
l 심볼릭 링크 파일 s 소켓 파일

검색 조건의 결합 기호

  • -a: and(기본) -a는 생략 가능하다.
  • -o: or
  • -!: not

mtime의 시간 표현 방법

  • -n: n일 이내, n*24시간 전부터 현재까지 마지막으로 수정(또는 접근)된 파일
  • n: n일 전. 즉 (n+1)*24시간 전부터 n*24시간 전까지 최종 수정(또는 접근)된 파일
  • +n: n일 이후, 즉 (n+1)*24시간 이전에 마지막으로 수정 또는 접근된 파일

동작

파일의 위치를 찾은 후 수행할 동작 지정, 기본 동작은 파일의 절대 경로를 화면에 출력

더보기

-exec 명령 {} \;  검색된 파일은 {} 위치에 적용되고, exec 옵션은 \;으로 끝남, exec는 이후에 지정한 명령 수행

-ok 명령 {} \; exec의 확인모드 형태, 사용자의 확인을 받아야 명령을 적용(rm -i)

-print 화면에 경로명을 출력(기본 동작)

-ls 긴 목록 형식으로 검색 결과를 출력

 


 

실습1

더보기

/tmp/find_ex로 이동

1. 파일 이름이 file로 시작하는 모든 파일, 총 몇 개인가?

find -name file* | wc -l -> 3

 

2. 파일 이름이 a, b, c 중 하나로 시작하는 파일

find -name '[abc]*'

 

3.디렉토리

find -type d

 

4. 수정 시각이 1일 이내인 모든 파일

find -mtime -1 *

 

5. 파일 소유자가 jhkim인 모든 파일

find -user jhkim

 

6. file1보다 나중에 수정된 모든 파일

find -type f -newer file1

 

7. 접근권한이 755인 모든 파일

find -perm 755

실습2

더보기

cd /tmp/wild4

1. 파일 이름이 13_20으로 끝나는 모든 파일. 총 몇 개인가?

find -name '*13_20' | wc -l300

 

2. 디렉토리 이름이 01-11 ~ 01-12로 끝나는 모든 디렉토리(1월11일 ~ 1월 12일). 총 몇 개인가?

find -type d -name '*01-1[12]' | wc -l

 

3. 수정된 시각이 1일 이내(24시간 이내)인 모든 파일

find -mtime -1

 

4. 수정된 시각이 2일 이내(48시간 이내)인 모든 파일

find -mtime -2

 

5. 수정된 시각이 3일 이상(72시간 이상)경과되면서 30일 이내의 모든 파일

find -mtime +3 | head 

/apnic-2016-02-01

./apnic-2016-02-01/timestamp-07_40

./apnic-2016-02-01/timestamp-18_00

./apnic-2016-02-01/timestamp-07_20

./apnic-2016-02-01/timestamp-13_40

./apnic-2016-02-01/timestamp-22_00

./apnic-2016-02-01/timestamp-05_40

./apnic-2016-02-01/timestamp-08_20

./apnic-2016-02-01/timestamp-12_00

 

6. 수정된 시각이 3일 이상(72시간 이상)경과되면서 30일 이내인 파일 중 파일 크기가 50bytes보다 큰 파일

find -mtime +3 -mtime -30 -size +50c

./apple-2016-02-25

./candy-2016-02-20

 

7. 파일 소유자가 jhkim이 아닌 모든 파일

find ! -user jhkim

./apple-2016-02-22

./apple-2016-02-23

./apple-2016-02-20

./apple-2016-02-21

 

8. 파일 크기가 20bytes보다 큰 일반 파일의 내용을 모두 화면에 출력(-size 사용하여 크기 지정할 때 -c 이용)

 find -type f -size +20c -exec cat {} \;

This is file timestamp-23_20.

This is file timestamp_23_40.

 

9. 파일 크기가 20bytes보다 작고 0보다 큰 일반 파일의 내용을 모두 화면에 출력

find -type f -size +0c -size -20c -exec cat {} \;

cat: ./candy-2016-01-01/timestamp-01_40: 허가 거부

01_20

 

10. 파일 크기가 20bytes보다 작고 0보다 큰 일반 파일의 내용을 모두 화면에 출력하되, 오류 메세지는 버린다.

find -type f -size +0c -size -20c -exec cat {} \; 2>/dev/null

01_20

 

find -size -c에서 -c는 필수가 아니다. 기본 지정은 kilobyte로 되어 있어서 -c로 형식을 지정하지 않으면 -k로 인식한다.

지정 옵션은 -c -k -M -G가 있다.

'UNIX 시스템' 카테고리의 다른 글

Internet, Communication - 11주차 수업 - 2  (0) 2023.05.31
File archive / Compress - 11주차 수업 - 1  (0) 2023.05.30
cut - 10주차 수업 - 1  (0) 2023.05.29
Filter - 9주차 수업 - 1  (0) 2023.05.28
i - node 8주차 수업 - 2  (0) 2023.05.26