#! /bin/sh # $Id: ftpget,v 1.2 91/05/07 21:15:43 moraes Exp $ # À͸í ftp¿¡ ¹èÄ¡ ÀÛ¾÷À» ½ÇÇàÇÏ´Â ½ºÅ©¸³Æ®. ±âº»ÀûÀ¸·Î ¸í·É¾î ¶óÀÎ ÀÎÀÚµéÀ» # ftpÀÇ ÀÔ·ÂÀ¸·Î ¹Ù²ãÁÖ´Â ÀÏÀ» ÇÕ´Ï´Ù. # °£´ÜÇÏ°í ºü¸¨´Ï´Ù - ftplist¿Í ÇÑ ½ÖÀÌ µÇµµ·Ï ÀÛ¼ºµÆ½À´Ï´Ù. # -h ´Â Á¢¼ÓÇÒ È£½ºÆ®¸¦ ³ªÅ¸³À´Ï´Ù(±âº»°ªÀº prep.ai.mit.edu) # -d ´Â Á¢¼ÓÈÄ cd ·Î ¿Å°Ü°¥ µð·ºÅ丮¸¦ ³ªÅ¸³À´Ï´Ù. -d ¸¦ ¿©·¯¹ø ¾µ ¼öµµ # Àִµ¥, ÀÌ·¸°Ô Çϸé ÁÖ¾îÁø ¼ø¼´ë·Î µð·ºÅ丮¸¦ ¿Å°Ü°¥ °ÍÀÔ´Ï´Ù. # ¸¸¾à¿¡ ÇØ´ç µð·ºÅ丮°¡ »ó´ë °æ·Î¶ó¸é ¼ø¼¸¦ Àß ¸Å°Ü¾ß ÇÕ´Ï´Ù. # ¿äÁò¿£ ³Ê¹« ¸¹Àº ½Éº¼¸¯ ¸µÅ©°¡ Á¸ÀçÇϱ⠶§¹®¿¡ ¾ÆÁÖ Á¶½ÉÇؼ »ç¿ëÇØ¾ß ÇÕ´Ï´Ù. # (±âº»°ªÀº ftp ·Î±×ÀÎ µð·ºÅ丮) # -v ´Â ftpÀÇ verbose¸ðµå¸¦ ÄѼ, ftp ¼¹öÀÇ ¸ðµç ÀÀ´äÀ» º¸¿©ÁÝ´Ï´Ù. # -f remotefile[:localfile] Àº remote ÆÄÀÏÀ» local ÆÄÀÏ·Î À̸§À» ¹Ù²ã # °¡Á®¿É´Ï´Ù. # -m pattern Àº ÁÖ¾îÁø ÆÐÅÏ¿¡ ÇØ´çÇÏ´Â ÆÄÀϵéÀ» mgetÀ¸·Î °¡Á®¿É´Ï´Ù. # ½© ¹®ÀÚµéÀ» Àοë(quote)ÇØ¾ß ÇÏ´Â °ÍÀ» ±â¾ïÇϼ¼¿ä. # -c ´Â ÇöÀç ÀÚ½ÅÀÇ ½Ã½ºÅÛ¿¡¼ ÁÖ¾îÁø µð·ºÅ丮·Î cd ¸¦ ½ÇÇàÇÕ´Ï´Ù. # ¿¹¸¦ µé¸é, # ftpget -h expo.lcs.mit.edu -d contrib -f xplaces.shar:xplaces.sh \ # -d ../pub/R3/fixes -c ~/fixes -m 'fix*' # ´Â expo.lcs.mit.edu ÀÇ ~ftp/contrib ¿¡¼ xplaces.shar ¸¦ ÇöÀç µð·ºÅ丮¿¡ # xplaces.sh ·Î °¡Á®¿À°í, ~ftp/pub/R3/fixes ¿¡¼ ¸ðµç ¼öÁ¤ ÆÄÀÏ('fix*')µéÀ» # Àڱ⠽ýºÅÛÀÇ ~/fixes µð·ºÅ丮·Î °¡Á®¿É´Ï´Ù. # ftp ¿¡¼ ÇØ´ç ¸í·É¾î°¡ ÁÖ¾îÁø ¼ø¼´ë·Î ½ÇÇàµÇ±â ¶§¹®¿¡ ¿É¼Ç ¼ø¼°¡ # Áß¿äÇÏ´Ù´Â °ÍÀº ¾ÆÁÖ È®½ÇÇÕ´Ï´Ù. # # Mark Moraes (moraes@csri.toronto.edu), Feb 1, 1989 # ==> Docbook¿¡¼ ó¸®ÇÒ ¼ö ÀÖµµ·Ï ºÎµîÈ£ °ýÈ£¸¦ ¼Ò°ýÈ£·Î ¹Ù²Ù¾ú½À´Ï´Ù. # # ==> ÀÌ·± ÁÖ¼®Àº HOWTO ÀúÀÚ°¡ µ¡ºÙÀÎ ÁÖ¼®ÀÔ´Ï´Ù. # PATH=/local/bin:/usr/ucb:/usr/bin:/bin # export PATH # ==> ¿ø·¡ ½ºÅ©¸³Æ®¿¡ ÀÖ´ø À§ µÎ ÁÙÀº ¾µµ¥¾ø¾î º¸ÀÔ´Ï´Ù. TMPFILE=/tmp/ftp.$$ # ==> ½ºÅ©¸³Æ®ÀÇ ÇÁ·Î¼¼½º ID($$)·Î Àӽà ÆÄÀÏÀ» ¸¸µê. SITE=`domainname`.toronto.edu # ==> 'domainname'Àº 'hostname'°ú ºñ½ÁÇÕ´Ï´Ù. # ==> Á» ´õ ÀϹÝÀûÀ¸·Î ¾²·Á¸é ¸Å°³º¯¼ö·Î ó¸®Çϵµ·Ï ÀçÀÛ¼º ÇÒ ¼öµµ ÀÖ½À´Ï´Ù. usage="»ç¿ë¹ý: $0 [-h remotehost] [-d remotedirectory]... [-f remfile:localfile]... \ [-c localdirectory] [-m filepattern] [-v]" ftpflags="-i -n" verbflag= set -f # -m ¿É¼Ç¿¡¼ globbingÀ» ¾²±â À§Çؼ set x `getopt vh:d:c:m:f: $*` if [ $? != 0 ]; then echo $usage exit 65 fi shift trap 'rm -f ${TMPFILE} ; exit' 0 1 2 3 15 echo "user anonymous ${USER-gnu}@${SITE} > ${TMPFILE}" # ==> Äõ¿ìÆ® Ãß°¡(º¹ÀâÇÑ echo ¹®¿¡¼´Â ÀÌ·¸°Ô Çϱ⠹ٶø´Ï´Ù). echo binary >> ${TMPFILE} for i in $* # ==> ¸í·É¾îÁÙ ÀÎÀÚ¸¦ ÆĽÌ. do case $i in -v) verbflag=-v; echo hash >> ${TMPFILE}; shift;; -h) remhost=$2; shift 2;; -d) echo cd $2 >> ${TMPFILE}; if [ x${verbflag} != x ]; then echo pwd >> ${TMPFILE}; fi; shift 2;; -c) echo lcd $2 >> ${TMPFILE}; shift 2;; -m) echo mget "$2" >> ${TMPFILE}; shift 2;; -f) f1=`expr "$2" : "\([^:]*\).*"`; f2=`expr "$2" : "[^:]*:\(.*\)"`; echo get ${f1} ${f2} >> ${TMPFILE}; shift 2;; --) shift; break;; esac done if [ $# -ne 0 ]; then echo $usage exit 65 # ==> Ç¥ÁØÀ» µû¸£±â À§ÇØ "exit 2"¿´´ø °ÍÀ» ¼öÁ¤. fi if [ x${verbflag} != x ]; then ftpflags="${ftpflags} -v" fi if [ x${remhost} = x ]; then remhost=prep.ai.mit.edu # ==> ¿©·¯ºÐÀÌ ÁÁ¾ÆÇÏ´Â ftp ½ÎÀÌÆ®·Î ¹Ù²Ù¼¼¿ä. fi echo quit >> ${TMPFILE} # ==> ¸ðµç ¸í·É¾î´Â Àӽà ÆÄÀÏ·Î ÀúÀåµË´Ï´Ù. ftp ${ftpflags} ${remhost} < ${TMPFILE} # ==> ÀÌÁ¦ Àӽà ÆÄÀÏ¿¡ ÀúÀåµÆ´ø ¸í·É¾îµéÀÌ ftp ¿¡ ÀÇÇØ ÇÑ ¹ø¿¡ 󸮵˴ϴÙ. rm -f ${TMPFILE} # ==> ³¡À¸·Î, Àӽà ÆÄÀÏ »èÁ¦(Áö¿ìÁö ¾Ê°í ·Î±× ÆÄÀÏ·Î º¹»çÇÒ ¼öµµ ÀÖ½À´Ï´Ù). # ==> µ¶ÀÚµéÀ» À§ÇÑ ¿¬½À¹®Á¦: # ==> 1) ¿¡·¯ üũ¸¦ Ãß°¡Çϼ¼¿ä. # ==> 2) ´Ù¸¥ Æí¸®ÇÑ ±â´Éµé(bells & whistles)À» ³Ö¾îº¸¼¼¿ä.