2010년 4월 13일 화요일

원하는 파일 찾기

 find

리눅스나 유닉스 시스템은 GUI방식의 운영체제가 아니므로 종종 어떤 파일일 찾아야 할 때 어디에 있는지

쉽게 알지 못할 때가 있습니다. 이럴 때 쓰이는 명령어가 find라는 명령어로서 윈도우 95나 98등에서

[시작→찾기]에 해당하는 기능이라고 할 수 있습니다. 윈도우에서도 이 찾기 기능을 이용하여 특정날짜에

해당하는 파일이나 특정 파일 사이즈에 해당하는 파일이나 특정이름을 가진 파일들을 찾을 수 있듯이

find라는 명령어에도 다양한 옵션이 있습니다.

 

find 명령어의 형식은 다음과 같습니다.

 

 

$find [찾을 디렉토리 경로] [찾기 옵션] [찾은 후 행할 작업]

 

 

[찾을 디렉토리경로]에는 다음과 같은 것들이 있다................................................................................

·                      : 현재 디렉토리 이하

/                     : 루트디렉토리 이하(파일 시스템 전체)

~ ID                : 특정ID의 홈디렉토리 이하

 

 

[찾기 옵션]에는 ㄴ다음과 같은 것들이 있다

-empty            : 비어 있는 파일

-gid n             : 특정 gid를 갖는 파일 (n:특정 gid)

-group gname  : 특정 group에 속한 파일(gname : group 명)

-name             : 지정한 형식을 갖는 파일 이름

-newer            : 특정 파일 이후에 생성된 파일

-perm             : 특정 허가모드를 가지고 있는 파일

-uid n             : 특정 uid를 갖는 파일 (n : 특정 uid)

-used n          : 최근에 n일 이후에 변경된 파일 ( n : 일수)

-user             : 특정파일을 소유하고 있는 소유자의 파일

 

 

 [찾은 후 행할 작업]에는 다음과 같은 것들이 있다.

-print             : 가장 많이 쓰는 옵션으로 찾은파일을 보여줌

-exec             : 찾은 파일들에 대해 특정명령을 수행

.....................................................................................................................................................................................

 

 

위의 예는 루트디렉토리 (/)부터 uid가 504인 파일을 찾아서 보여달라(· print)는 명령어입니다.

 

 

위의 명령어는 특정가입자 (sspark)의 홈디렉토리 (~sspark)이하 (/home/sspark 이하)에 존재하는

shtml 로 끝나는 파일을 찾아서 보여달라는 명령어입니다.

 

 

위의 명령어는 특정가입자의 홈디렉토리 (~sspark)이하에 존재하는 doc로 끝나는 (*.doc)파일을 찾아서 묻지말고 (-f) 지워(rm) 버리라는 명령어입니다.

 

 

 

 

  which

find가 특정파일을 찾아주는 명령어인 데 비해 which라는 명령어는 특정 명령어의 위치가 어디인지를 찾아주는 명령어입니다.

리눅스나 유닉스 등에서는 명령어의 위치를 모두 기억하기 어려우므로 이 명령어를 활용하여 찾고자하는

명령어의 위치를 확인할 수 있습니다.

 

아래의 예는 perl 등으로 프로그램된 CGI를 설치할 때 많이 쓰이는 perl의 경로를 확인하는 것입니다.

 

 

whereis란 명령어도 이와 유사한 기능을 갖는데 다른점은 패스에 해당하는 모든 디렉토리를 뒤져서

해당 명령어를 찾아 준다는 점입니다.

 

 

참고로 whatis란 명령어는 which나 whereis가 명령어의 위치를 찾아주는 데 비해 해당 명령어가 무엇을

하는 것인지 간단하게 보여줍니다.

 

 

 

댓글 없음:

댓글 쓰기