반응형

'Linux'에 해당되는 글 2건

반응형

리눅스 find 하위 디렉토리 검색

 

리눅스는 파일 시스템을 사용하다보니 파일을 검색할 일이 많습니다.

 

매일 사용하는 명령어 이거나 가끔 사용하더라도 중요한 키워드는 잘 기억나기 마련인데

 

이상하게 find 명령어는 잘 기억이 안나더랍니다.

 

그래서 이번에 한번 정리하고 넘어가야 할 것 같아서 find 명령어를 정리하고 넘어가려고 합니다.

 

find 명령어는 일반적으로 파일을 찾는 용도로 사용을 하지요

 

파일을 찾는 이유가 무엇인가요?

 

이 파일이 어디있는지 모르니깐 검색하는 거겠죠?

 

그렇다면 당연 하위폴더까지 검색하는 것을 원할텐데 본론으로 들어가보겠습니다.

 

find . -name 찾을이름

 

일단 가장 간단하게 위와 같이 사용을 하면 가장 편합니다.

 

예시를 보여드릴께요

 

제가 사용하고 있는 서버의 아파치 폴더입니다.

 

/apache/httpd24 위치에서 모든 파일을 검색해보았습니다.

 

httpd 로 시작하는 파일을 검색해보도록 할께요

 

find . -name httpd*

 

 

 

해당 구문을 사용하니 하위 폴더에 있는 내용이 검색되지요?

 

* ( Asterisk ) 를 사용한 이유는 httpd 로 시작하는 모든 파일을 찾고 싶기 때문에 * ( Asterisk ) 를 사용했답니다.

 

httpd 만 사용했다면 정확하게 일치하는 파일만 검색이 되었을꺼에요

 

그럼 파일이 실제로 있는지 확인해보러가봐야겠죠

 

일반적으로 아파치에서 자주 사용하는 conf 폴더에 httpd.conf 파일이 잘 있나보겠습니다.

 

 

이렇게 httpd.conf 파일이 잘 검색된 것을 확인했습니다.

 

위와 같이 find 명령어로 쉽게 찾을 수 있는 방법을 알아보았습니다.

 

[root@si conf]# 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:

operators (decreasing precedence; -and is implicit where no others are given):
      ( EXPR )   ! EXPR   -not EXPR   EXPR1 -a EXPR2   EXPR1 -and EXPR2
      EXPR1 -o EXPR2   EXPR1 -or EXPR2   EXPR1 , EXPR2

positional options (always true): -daystart -follow -regextype

normal options (always true, specified before other expressions):
      -depth --help -maxdepth LEVELS -mindepth LEVELS -mount -noleaf
      --version -xautofs -xdev -ignore_readdir_race -noignore_readdir_race

tests (N can be +N or -N or N): -amin N -anewer FILE -atime N -cmin N
      -cnewer FILE -ctime N -empty -false -fstype TYPE -gid N -group NAME
      -ilname PATTERN -iname PATTERN -inum N -iwholename PATTERN -iregex PATTERN
      -links N -lname PATTERN -mmin N -mtime N -name PATTERN -newer FILE
      -nouser -nogroup -path PATTERN -perm [-/]MODE -regex PATTERN
      -readable -writable -executable
      -wholename PATTERN -size N[bcwkMG] -true -type [bcdpflsD] -uid N
      -used N -user NAME -xtype [bcdpfls]
      -context CONTEXT


actions: -delete -print0 -printf FORMAT -fprintf FILE FORMAT -print
      -fprint0 FILE -fprint FILE -ls -fls FILE -prune -quit
      -exec COMMAND ; -exec COMMAND {} + -ok COMMAND ;
      -execdir COMMAND ; -execdir COMMAND {} + -okdir COMMAND ;

Report (and track progress on fixing) bugs via the findutils bug-reporting
page at http://savannah.gnu.org/ or, if you have no web access, by sending
email to <bug-findutils@gnu.org>.

위와 같이 find --help 명령어를 실행하면 많은 옵션들이 있지만

가장 쉽고 자주 사용하는 하위폴더까지 파일 명칭을 찾는 명령어 하나만 외워두면

서버 운영하면서 아주 편하게 쓸 수 있답니다.

 

좋은 시간 되세요^^

 

반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형

[ LINUX / UNIX / AIX ] 직전 명령 확인


shell 프로그램을 작성 시 직전 명령이 정상적으로 실행되었는지 확인하는 명령어로 $? 가 있습니다.

 

예를 들어 파일을 복사했을 때 정상적으로 작동이 되었는지 확인하는 방법은??

1. 복사를 완료한 타겟 디렉토리에서 확인.

   - 복사를 완료한 폴더로 이동해서 눈으로 확인하면 됩니다.

     해당 폴더로 이동 후 ls -al 명령어를 이용하여 확인

2. $? 내장변수를 이용.​

cp ​/home/aa.txt /etc/target
echo $?

명령어를 이용했을 때 결과값이 0 이 나오면 정상적으로 명령어가 완료된것으로 봅니다.

 

 

$? : $? 의 값은 직전에 실행한 명령에 대한 값을 출력하는데 0값이 리턴 되면 직전의 명령이 정상적으로 실행된 것으로 볼 수 있습니다

  - 나머지 값이 리턴 되면 직전의 명령이 정상적으로 수행되지 못했음 을 뜻합니다.

 

응용하면 if문에도 적용할 수 있습니다.


cp $BACKUPDIR/$ID $WORKDIR/$ID

if [ $? -ne 0 ]

성공했을 경우의 로직입력 else

실패했을 경우의 로직입력 fi


간단하게 cp 명령어로 확인해보았지만 더 심오한 shell 프로그래밍을 할 때 유용하게 사용할 수 있습니다.^^




이상으로 LINUX / UNIX / AIX 직전 명령 확인을 살펴보았습니다.


읽어주셔서 감사합니다.


반응형
블로그 이미지

나남나여

일상 제품리뷰와 맛집/여행/사진을 좋아하고 IT 관련 프로그래밍 초급 & 고급 정보를 공유하는 블로그

,
반응형