OS/Linux

[Linux] find 로 파일 검색하기

Peter Ahn 2018. 5. 5. 10:30
반응형

개요

find 명령어는 리눅스에서 파일을 검색하는 명령어입니다.

특정 조건을 만족하는 파일들을 찾아서 화면에 출력할 수도 있고, 추가 명령어를 실행하여 처리할 수도 있습니다.


예를들면 파일명에 "hello" 가 들어간 파일들을 모두 검색하거나, 파일을 제외하고 디렉토리만 검색하여 출력하고자 할 때 find 명령어를 사용합니다. 

일반적으로 ls 와 grep 을 사용하여 출력하는 방법보다 빠르고 효율적입니다.


사용법

리눅스에서 사용되는 명령어는 모두 대소문자를 구분하니 주의해주세요.

find 명령어에 대한 자세한 설명은 find --help 명령어를 통해 볼 수 있습니다. 

Usage: find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression]

default path is the current directory; default expression is -print
expression may consist of: operators, options, tests, and actions:

기본 경로는 현재 디렉토리이고, 기본 옵션은 -print 라고 나와있네요.

따라서 아무것도 없이 그냥 find 라고만 입력하면 현재 디렉토리 하위의 모든 디렉토리 및 파일들을 화면에 출력해줍니다.


예제

ex) 현재 디렉토리 하위의 디렉토리만 출력

[root@peterdev test]# find . -type d
.
./peter
./john
[root@peterdev test]#

-type d : 디렉토리 타입

-type f : 파일 타입


ex) 현재 디렉토리 하위에서 대소문자 구분 없이 language로 시작하는 모든 파일 출력

[root@peterdev test]# find . -type f -iname "language*"
./peter/language.python
./peter/language.bash
./peter/language.c
./peter/language.cpp
./peter/language.korean
./peter/language.english
./peter/language.delphi
./peter/language.java
./peter/language.javascript
[root@peterdev test]#

표현식(expression)에는 위 예제에서와 같이 와일드 카드 문자(wild card charactor)를 사용할 수 있습니다.


※ 와일드 카드 문자란?

하나 또는 많은 문자를 나타내는 데 사용될 수 있는 키보드 문자.

일반적으로 운영 체계에서 복수의 파일을 이름으로 지정하는 수단으로 사용된다.


-name "expression" : 대소문자 구분하여 파일명으로 검색

-iname "expression" : 대소문자 구분하지 않고 파일명으로 검색



ex) 현재 디렉토리 하위에서 수정된지 300분 이상 된 파일만 검색

[root@peterdev test]# find . -mmin +300 -type f
./test1.txt
./test2.txt
[root@peterdev test]#

-mmin : 수정시간 기준 (분단위)

-mtime : 수정시간 기준 (일단위)

-cmin : 생성시간 기준 (분단위)

-ctime : 생성시간 기준 (일단위)



ex) 현재 디렉토리 하위에서 크기가 0바이트 이상인 파일만 출력

[root@peterdev test]# ls -l
total 12
drwxr-xr-x 2 root root 4096 May  3 14:27 john
drwxr-xr-x 2 root root 4096 May  3 14:27 peter
-rw-r--r-- 1 root root   33 May  3 14:48 test1.txt
-rw-r--r-- 1 root root    0 May  3 05:13 test2.txt
[root@peterdev test]# find . -size +0c -type f
./test1.txt
[root@peterdev test]#

-size -100c : 100 byte 이하

-size +500k : 500 kbyte 이상




-Peter의 우아한 프로그래밍

여러분의 댓글은 저에게 크나큰 힘이 됩니다. 오류 및 의견 주시면 감사하겠습니다.

반응형