2003.10.26 13:54
출처 http://www.procoms.com/procoms/download/linux_com/find.htm
find
어떤 지장된 형식과 일치하는 파일을 검색하는 명령이다.
특정 단어를 포함한 모든
파일을 검색할 수 있다.
find와 grep 명령은 많이 사용되는 명령어 중의 하나이다.
■
사용법
find [path] [expression]
path(경로)는 find 명령으로 찾아볼 디렉토리의 시작위치이다.
경로를 지정하지 않으면 기본적으로 시작
위치와 그 하위 디렉토리 모두를 검색한다. 경로를 루트 디렉토리(/)로 지정한다면 find 명령은 파일 시스템 전체를 검색한다.
expression(표현식)은 옵션과 테스트, 행동(action)으로 구성된다.
옵션(option)은 테스트와 상관없이 항상
적용된다.
■ 옵션 및 매개변수
-maxdepth |
0 이 아닌 정수값으로 경로 깊이를 지정. '-maxdepth 1'은 시작 위치로 지정한 디렉토리만 검색하고 하위 디렉토리는 찾지 않는다. -mindepth 옵션은 반대로 동작한다. 지정한 숫자만큼의 깊이부터 그 하위 디렉토리를 검색한다. |
-xdev |
검색을 시작한 파일 시스템에서만 검색을 수행하도록 설정한다. 하위 디렉토리에 링크된 파일 시스템은 검색하지 않는다. |
-atime N |
n일 전에 액세스(access)된 파일을 찾음. |
-mtime N |
n일 전에 수정(modify)된 파일을 찾음. |
-newer USR |
file보다 늦게 수정된 파일을 찾음. |
-size n |
n*512 바이트 길이를 가지는 파일을 찾음. |
-name WORD |
파일 이름으로 검색. 이름에는 메타 문자(*, ?, [])를 사용할 수 있다. |
-perm MODE |
퍼미션으로 검색. (-perm +2000) |
-type LETTER |
파일형식으로 검색. f는 보통 파일, d는 디렉토리 파일을 의미. |
-user USR |
사용자 이름이 usr인 파일을 찾음. |
-nouser |
파일 소유자 이름이 등록되어 있지 않은 파일을 찾음. |
-nogrp |
파일 소유 그룹 이름이 등록되어 있지 않은 파일을 찾음. |
행동(action) 옵션은 조건(test)과 일치하는 파일에 대해 수행할 작업을 설정함.
-exec CMD |
명령(CMD)을 실행. 명령행의 끝은 반드시 \; 로 닫아 주어야 한다. 현재 찾은 파일이름의 배열을 {}로 입력으로 사용할 수 있다. 아래 명령은 확장자가 bak인 모든 파일을 찾아 삭제한다. |
-ok CMD |
명령을 실행하기 전에 사용자 입력을 기다린다. |
|
표준출력(stdout)으로 출력. 기본설정이다. |
-print0 |
-print와 같이 동작하지만 출력의 끝에 개행문자를 붙이지 않는다. |
-fprint FILE |
-print와 같이 동작하면서 출력을 지정한 파일로 보냄. |
-ls |
ls [-dils] 형식으로 파일 정보를 자세히 출력. |
-fls |
-ls 와 같이 동작하면서 출력을 지정한 파일로 보냄. |
■ 사용
예
아래는 'patch -' 라는 문자열을 담고 있는 문서를 검색하여 파일 이름과 검색된 줄을 화면으로 출력하는
예이다. find 명령을 둘러 싼 문자(`는 따옴표가 아님)는 둘러싸인 명령의 수행 결과를 다른 명령의 인수로 돌려준다. 예 에서는
하위 디렉토리의 모든 파일을 grep 명령의 인수로 넘겨준다.
grep 'patch -' `find
/usr/doc/HOWTO/ -type f`
bash2가 사용중인 쉘이라면 위 명령은 다음과 같이
달라진다.
grep 'patch -' $(find /usr/doc/HOWTO/ -type f)
검색된 결과를 파일로 저장하고 less 유틸리티를 이용하여 살펴보는 것도 좋은 방법이다.
grep
'patch -' `find /usr/doc/HOWTO/ -type f` | tee patch.list
less
patch.list
파일이름으로 검색하려면 아래 예처럼 -name 을 사용합니다. 아래 명령은 파일이름 끝에 net이라는 문자열이
포함된 파일을 모두 프린터로 출력한다.
find /usr/doc/HOWTO/ -name '*net' -exec lpr {}
\;
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
18 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia
![]() | jun | 2003.11.06 | 1453 |
17 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia-5
![]() | jun | 2003.11.06 | 1472 |
16 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia
![]() | jun | 2003.11.06 | 1458 |
15 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia
![]() | jun | 2003.11.06 | 1447 |
14 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia-2
![]() | jun | 2003.11.06 | 1368 |
13 |
Unix Internals-The New Frpntiers 저자:Uresh Vahalia-1
![]() | jun | 2003.11.06 | 1502 |
12 | cron 사용법 | jun | 2003.10.26 | 4784 |
» | find 사용법 | jun | 2003.10.26 | 1539 |
10 | 날짜 설정하기 | jun | 2003.10.18 | 1638 |
9 | mysql 복구....방법 | jun | 2003.10.15 | 1772 |
8 | 리눅스용 범용 사운드카드 지원 "alsa driver 0.9.7a" | jun | 2003.10.13 | 1746 |
7 | 리눅스 공유 ipchange | jun | 2003.10.11 | 3078 |
6 | 리눅스 grub 재설치 | jun | 2003.10.11 | 1574 |
5 | 자동실행씨디만들기 | jun | 2003.10.11 | 1737 |
4 | 리눅스 sms이용법 예전 | jun | 2003.10.11 | 1567 |
3 | 리눅스 Apahce 2.0.35 + php 4.2. 설치 | jun | 2003.10.11 | 1907 |
2 | mtu 값조절 | jun | 2003.10.11 | 1601 |
1 | lilo..암호걸기 | jun | 2003.10.11 | 1625 |