linux file명령어 몇 가지 팁

find

find명령어는 리눅스 파일 시스템 내 각종 파일 디렉토리를 검색하는 명령어 이다.

기본적인 검색

현재 디렉토리 내 html확장자를 가지고 있는 모든 파일을 찾아 경로를 출력해 준다.

# find ./ -name "*.html"

현재 디렉토리 내 디렉토리만 출력

# find ./ -type d

응용

find 명령어로 특정 경로내 특정 문자열을 포함하고 있는 파일 리스트 출력하기

사용법

find [찾고자 하는 경로] -name "검색할 파일명" -exec grep -l "찾을 문자열" {} \;

사용예 : /home 경로 아래 localhost 문자열을 포함하는 .php 파일 리스트 출력

# find /home -name "*.php" -exec grep -l "localhost" {} \;

find 명령어와 perl을 이용해 특정 경로내 파일들 중 특정 문자열을 포함하고 있는 파일을 검색해 검색된 문자열 치환

사용법

find [찾고자 하는 경로] -name "검색할 파일명" -exec grep -l "찾을 문자열" {} \; | xargs perl -pi -e 's/치환하려는 문자열/치환할 문자열/g'

사용예 : /home 경로 아래 “localhost” 문자열을 포함하는 .php 파일을 찾아 “localhost”문자열을 “127.0.0.1”로 치환

# find /home -name "*.php" -exec grep -l "localhost" {} \; | xargs perl -pi -e 's/localhost/127.0.0.1/g'

find명령어로 특정 문자열을 포함하는 파일을 찾아서 복사

사용법

find [찾고자 하는 경로] -name "검색할 파일명" -exec grep -l "찾을 문자열" {} \; | awk '{print "cp -Rvf "$1" 복사할디렉토리"}' | sh

사용예 : /home 경로 아래 “localhost” 문자열을 포함하는 .php 파일을 찾아 /backup/ 디렉토리로 복사

# find /home -name "*.php" -exec grep -l "localhost" {} \; | awk '{print "cp -Rvf "$1" /backup/"}' | sh

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다