find 옵션

2012/06/04 15:54 / Linux/Tip&Tech

Find 명령어의 옵션 및 활용:

해당 명령어는 파일 시스템에서 주어진 조건으로 파일을 찾을 때 아주 유용하게 쓰인다. 대표적인 용도는 오래되거나 크거나, 사용하지 않는 파일들을 찾을 때 그 위력을 발휘한다.

기본적인 사용 방법은 다음과 같다:

find path operators

find 대상디렉토리 검색조건 처리방법


검색 조건:

-name filename : 파일 이름으로 파일을 찾는다.

-user username : 유저 이름으로 파일을 찾는다.

-group groupname : 그룹 이름으로 파일을 찾는다.

-perm nnn : 파일 퍼미션(권한)이 nnn인 파일을 찾는다. ex> -perm 775

-type x : 파일 타입이 x인 파일을 찾는다 ( f - 일반 파일, b - 블록 특수 파일, d - 디렉토리, l - 심볼릭 링크 등).
 

-atime : 파일을 열어본 시간 또는 디렉토리에 cd명령으로 접근한 시간.

-mtime : 파일의 내용이 변경된 시간( ls -l 에서 나오는 시간 ).

-ctime : 파일의 정보가 변경된 시간( chmod, chown과 연관성이 있다 ).

( atime, mtime, ctime 모두 각각의 시간 정보를 통해서 파일을 찾는다. )

사용자 삽입 이미지
ex> find / -atime 0

/(최상위 디렉토리)에서부터 atime 0 즉 파일을 열어본 시간이 24시간 이내인 파일을 찾아라.

-size n : 사이즈가 n 이상인 파일을 찾는다 ( b ( 블록, 기본값, 512byte ), c ( byte ), k( kbyte ), w ( 2byte ) ).

ex> find / -size 166c -type f

/(최상위 디렉토리)에서부터 166byte 크기의 일반 파일을 찾는다.

-links n : 링크된 개수가 n 이상인 파일을 찾는다.

-print : 표준 출력( 파일의 경로가 출력된다 ) * 대부분의 경우 default 설정된 검색 조건이다(아닌 경우도 있다).

-exec commnd : command가 실행된다.

-operators : -a AND연산, -o OR연산, \ (expression \)


검색 조건의 활용:


find / -name ping -print

/ (최상위 디렉토리)에서부터 파일 이름이 ping인 파일을 찾아 경로를 표시하라.

find /home -name core -exec ls -l {} \;

home 디렉토리에서 파일 이름이 core인 파일을 찾아 그 파일에 대한 ls -l 명령을 하라.

find / -user ysy -perm 755

/(최상위 디렉토리)에서부터 유저 이름이 ysy이고 파일 퍼미션(권한)이 755인 파일을 찾아라.

find / -user root -perm +4000 -exec ls -l {} \;

/(최상위 디렉토리)에서부터 유저 이름이 root이고 파일 퍼미션(권한)이 4000이상인 파일을 찾아서 그 파일에 대한 ls-l 명령을 하라.

find / -perm +4000 -ctime 0 -exec ls -l {} \;

/(최상위 디렉토리)에서부터 파일 퍼미션(권한)이 4000이상이고 ctime 0 즉 파일 내용이 24시간 이내로 변경된 파일을 찾아라.

=========================================================================
출처 : http://blog.naver.com/yoosy0302?Redirect=Log&logNo=130113520604
        http://blog.eggnara.com/140

2012/06/04 15:54 2012/06/04 15:54
샤이 이 작성.

당신의 의견을 작성해 주세요.

rpm -e "패키지" 삭제 중 "여러개의 패키지를 지정합니다"
라는 오류 발생 시 --allmatches 옵션을 추가해서 삭제 함
2012/04/18 18:02 2012/04/18 18:02
샤이 이 작성.

당신의 의견을 작성해 주세요.

dos 에서 저장된 유니코드와 일부 utf-8 문서를 unix 에서 확인 시 BOM (Byte Order Mark) 가 삽입되어
정상적으로 동작이 되지 않을 수 있습니다.

vi -b 옵션등으로 확인 시 시작부분에 <feff>라는 내용을 확인할 수 있으며 이를 삭제하여 주거나 아래와 같은 명령어로 삭제할 수 있습니다.

perl -C -pi -e 's/\x{feff}//g' 파일명
2012/03/19 14:15 2012/03/19 14:15
샤이 이 작성.

당신의 의견을 작성해 주세요.

서버의 쉘상에서 특정 서버로 파일을 업로드 시 curl 을 이용하여 http 프로토콜을 통해 파일을 간단히 전송할 수 있습니다.

수신 서버측에는 apache+php 등의 php 환경이 구축되어 있어야 하며 보내는 서버는 curl 이 설치 되어 있어야 합니다.

수신 서버
===up.php=======================================
<?php


    $thisfilename=basename(__FILE__);
    $temp_filename=realpath(__FILE__);
    if(!$temp_filename) $temp_filename=__FILE__;
    $osdir=eregi_replace($thisfilename,"",$temp_filename);
    unset($temp_filename);
    $virdir = eregi_replace($thisfilename,"",$PHP_SELF);


     // 절대 경로


      $save_dir = "업로드 할 폴더의 절대경로";
      $SaveFileName =  $thefile_name;




      // 파일 업로드
      if($thefile){
         $SaveFileName = $SaveFileName;
         copy($thefile,"$save_dir$SaveFileName");  //파일저장
        unlink($thefile);   // 임시 파일 삭제
      }
?>
================================================
상기등과 같이 파일 수신 php 파일을 http로 외부에서 접근 가능한 경로에 생성합니다.

보낼 서버의 쉘에서 다음과 같이 실행 하면 php에서 지정한 디렉토리로 파일이 전송 됩니다.

curl -F thefile=@파일명 http://아이피_또는_도메인/up.php




2012/03/14 19:29 2012/03/14 19:29
샤이 이 작성.

당신의 의견을 작성해 주세요.

windows 에서 작성된 파일 의 경우 리눅스 시스템에서 파일을 확인시 ^M 개행문자가 출력되는 경우가 있습니다.
vi -b 로 확인이 가능하며 vi 편집기 내부에서 수정해도 되지만 번거로운 경우 다음 명령어로 한번에 변경 할 수 있습니다.

perl -pi -e "s/\r\n/\n/g" 파일명
2012/03/14 14:59 2012/03/14 14:59
샤이 이 작성.

당신의 의견을 작성해 주세요.

: 1 : ... 2 : 3 : 4 : 5 : 6 : 7 : 8 : 9 : 10 : ... 27 :