'복사'에 해당되는 글 1

  1. 2010.11.30 UNIX-질의응답] 정해진 폴더로 copy하는 unix program
질문>>> 
입력한 문자열을 포함하는 file명을 찾아서 정해진 폴더로 copy하는 unix pgm 좀 작성해주세요.

간단할것 같은데 잘안되네요.  C PGM이나 VISUAL BASIC은 조금 했었는데.. . UNIX SHELL SCRIPT는 
 배워 본적이 없어서 잘안되네요.  C SHELL SCRIPT로 만들어주세요.
 만들려는 PGM은 간단합니다. 
PROMPT 상태에서  COPY라고 입력하고 ENTER 치면 PLEASE INPUT NAME 이라고 물어보고 이름을 입력하면 입력한 이름으로 시작하는 모든 FILE명을 찾아서 FILE을 정해진 DIR로 COPY 하는 PGM입니다. 
EX ) 검색하는 FILE 위치 : /export/home/imsi/popo/popo2.asc
copy 하고자 하는 dir 위치 : /export/home/imsi
>   copy      
please input name  :   popo2
이렇게하면 popo2.asc를 찾아서 /export/home2/imsi 폴더로 이동할수 있게만 해주시면 됩니다.
unix 고수님들 꼭좀 부탁드립니다.


답변>>>

아래처럼 해보세요. 
============================================================================
#!/bin/sh
current_dir="./"
copy_dir="./imsi"
echo "PLEASE INPUT NAME? : "
read file_name
cp $current_dir/*$file_name* $copy_dir
============================================================================ 

한 라인씩 설명드리죠. 
1라인 : 사용하시는 shell의 종류를 정의합니다.
2라인 : 검색하는 파일의 위치입니다.
            ./ 이라는 의미는 copy라는 프로그램이 실행되는 디렉토리를 의미합니다.
           원하시는 디렉토리가 있으시면 " 사이에 넣으시면 됩니다.
3라인 : copy하고자 하는 디렉토리입니다.
            ./imsi 이라는 의미는 현재 디렉토리(copy가 있는 곳) 아래에 imsi 라는 디렉토리를 말합니다.
           마찬가지로 원하시는 디렉토리가 있으시면 " 사이에 넣으시면 됩니다.
4라인 : 파일명을 입력받기 위해 물어보는 내용을 화면에 표시합니다.
5라인 : read를 통해 파일명의 일부를 입력받아서 변수에 저장합니다.
6라인 : 와일드카드(*표시)를 이용해서 원하는 디렉토리로 파일을 copy합니다. 

그리고 마지막으로 파일 권한 설정하는것 잊으시면 안됩니다. 

파일 이름을 copy라고 만드셨다면
chmod 744 copy
이렇게 하시면 실행 권한이 생깁니다. 

간단하죠? 
c나 비주얼베이직을 해보신 경험이 있으시면 어느정도 프로그램의 감은 있으실듯 합니다.
서점에 보시면 쉘 프로그래밍에 대한 좋은 책들이 많이 있습니다.
 
전부다 보실 필요는 없구요. 필요하신 부분이 있으실때 마다 찾아보시면서 이용하시면 금방
쉘 전문가가 되실 겁니다.
 
그럼 좋은 결과 있으시길 빕니다.


[출처] 네이버지식인 : http://kin.naver.com/qna/detail.nhn?d1id=1&dirId=10302&docId=70397892&qb=dW5peCBjb3B5&enc=utf8&section=kin&rank=1&search_sort=0&spq=0&pid=gnLULB331xNsscLjgvlssv--415838&sid=TO95zQt470wAAAx3CdQ
endline________________________________________