[UNIX] Find 명령어의 자세한 사용법

Solaris 2006. 2. 21. 16:56 posted by CecilDeSK
반응형
@ 용도
--> 사용자가 제시한 속성을 만족하는 file을 찾아 내어, 이를 화면으로 출력하거나,
이러한 file에 특정한 명령을 수행한다. 이러한 find 명령어는 file system을 감시하
는데 뿐만 아니라, 하나의 subdirectory내에서 특정한 file을 찾아내거나, directory
아래에 특정한 내용을 담고 있는가등 다양한 기능을 수행하는 막강한 명령어이다.

@ 사용법
--> find 경로명 수식

find 명령어는 pathname-list에 있는 각 경로로부터 directory 계층구조에 따라 재귀
적으로 내려가면서, 논리적인 expression을 만족하는 file들을 찾는다. 단, symbolic
link는 보통 화일과 같이 검색된다.
ex) 만약 /etc/chown -> ../usr/etc/chown 일때, find /etc -uname chown -print하면
./chown 라고만 출력된다. ( ./chown -> ../usr/etc/chown이라고 출력되지 않는다란
소리다.)

-name 화일명
: 지정한 화일 이름에 해당하는 화일이 담겨 있는 디렉토리를 찾아준다. 이때 화일
이름에는 와일드 카드 문자인 *,?를 사용 가능하다.

-type 화일형태
: 지정한 화일 형태와 맞는 화일을 찾아준다. 화일 형태에는 5가지가 있는데 f는 일반
화일, b는 block special file, c는 character special file, d는 디렉토리, p는 파이
프이다.

-user 사용자 ID
: 뒤에 지정한 사용자가 권한을 가지고 있는 화일을 찾아준다.

-group 그룹 ID
: 뒤에 지정한 그룹이 권한을 가지고 있는 화일을 찾아준다.

-mtime n
: 마지막으로 수정된 날이 정확히 n일 전인 화일을 찾아준다. 여기서 n을 명시할 때,
-n이라고 표기하면 n일 전부터 지금까지를 의미하고, +n이라고 표시하면 n일을 포함
해서 그 이전에 수정된 화일을 찾아준다.
ex) n 현재
----------------------------------------->
|-- +n -- |------ -n ------|

-exec 명령어
: shell 명령어를 실행해 주는 옵션으로서 명령어 뒤에는 반스시 ; 기호를 붙혀 주어
야 한다. ;기호 앞에 를 붙여주는 이유는 ; 기호가 shell 특수 문자이기 때문이다.
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^

-print
: 화일이나 디렉토리가 발견되었으면 이 옵션에 의해서 그 화일이나 디렉토리가 담겨
있는 디렉토리가 화면에 나타난다.

@ 예제 ------------------------------------------------------------------------
ex) 1. 만약 imdw@cs.sejong.ac.kr이라는 몬자열을 포함하는 모든 화일을 찾으려면
--> #find / -exec grep "
imdw@cs.sejong.ac.kr" {} ;
참고로 여기서 {}는 현재의 경로명으로 대체된다.

2. 만약 모든 화일중에서 core와 확장자가 .c인 화일을 모두 찾아서 지워주려면
--> #find / ( -name core -o -name "*.c" ) -exec rm {} ;
참고로 는 alias나 특수문자를 단순한 character로 사용해야 할 시 alias나 특수
문자 앞에다 적어준다.
-------------------------------------------------------------------------------
반응형