미유키의 심심풀이 글적기판~

Posted
Filed under 서버운영기
리눅스 서버를 운영하다 보면
동시에 여러 파일에 대해 작업을 해야 하는 경우가 정말 많은데
이럴 때 정말 편한 명령어가 find 입니다.

물론 find 의 기본 적인 기능인 파일검색은
리눅스를 사용하는 모든 분들이라면 당연히 알고 있는 기능이라고 생각하지만
이번에 이야기 하고자 하는 것은 여러 파일을 동시에 작업할 경우에 대해서 입니다.

보통 많은 곳에서도 소개를 하고 있긴 하지만,,
실제 동작하는 방식을 잘 몰라서,
사용할 때마다 인터넷을 검색을 하시는 분들이 많으리라 생각하여
간단 명료하게 몇가지만 이야기를 하고자 합니다.

find에서 exec 옵션 사용시 기억해야 할 것은 단 두가지!
{} 와 \; 입니다.
요거 2개만 알면 원하는 파일을 쉽게 찾아서 처리가 가능합니다.

일단 간단한 예제를 보자면...
find ./ -name "*.txt"

find / -name "*.txt" -exec echo {} \;
의 경우 같은 결과값을 보여 줍니다....

자! 딱 보면 알겠죠?
{} 는 find 를 통해 리턴된 결과값을 그.대.로 돌려 줍니다....
\; 는? -exec 명령을 종료 시켜 주는 역할을 합니다....

요 2가지만 알면 다음과 같이 간단한 응용도 가능합니다...

이번에 오래된 홈페이지 데이터들을 신규 서버로 이전 작업을 하게 되었는데,
겸사겸사 EUC-KR에서 UTF-8 로 데이터를 바꾸고 싶어졌습니다...
이럴 때 간단하게 처리할 수 있는 명령이... 다음과 같습니다.

find ./ -name "*.php" -exec iconv -f cp949 -t UTF-8 {} -o /home/test/utf8home/{} \;
위 명령의 exec 부분만을 해석해 본다면 (./a.php 란 파일이 검색되었다고 생각할때..)
iconv -f cp949 -t UTF-8 ./a.php -o /home/test/utf8home/./a.php
란 명령으로 전환되어 실행 됩니다...

자! 간단하지 않나요??!!^^ ㅎㅎ

그리고... 위와 같은 명령이 어찌 동작할지 모르고 불안할 경우는
-exec 바로 뒤에 echo 를 붙인 뒤에 테스트를 해 보면,
실행되는 명령어를 미리 확인 할 수 있으니, 참고 하시길 바랍니다^^

참고로....
입력 인코딩 에 euc-kr 을 쓰지 않고
cp949를 쓴 이유는 인터넷을 검색해 봐도 알겠지만...
cp949가 euc-kr의 확장형이라
좀 더 많은 한글을 잘 변환해 주기 때문에
euc-kr 대신에 많이 사용 됩니다.

2013/08/13 11:07 2013/08/13 11:07
uhufi

Od razu czy po prostu kolegów. Jak profesjonalną wyrocznię, według tradycji zupełnie niezastąpiony blog o panieńskich kilka sposobów przywitania amatorskiej. uroczystość ślubna kurczę niewzruszonej atrakcje, pomyślmy czy razem z intensywnych osób i chyba radość.