Bzip2 mini-HOWTODavid Fetter, david@fetter.orgv2.00, 22 August 1999 ¿ªÀÚ : ÀÌÈ£¿¬ < guru2k@kldp.org>ÀÌ ¹®¼´Â »õ·Î¿î ¾ÐÃà ÇÁ·Î±×·¥ÀÎ bzip2¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö À̾߱âÇÑ´Ù. sgmlÀÇ ·ÎÄÃÄ«ÇÇ´Â ÇöÀçÀÇ »çÀÌÆ® <Bzip2-HOWTO.sgml> ¿¡ ÀÖ°í, "±ÇÀ§°¡ ÀÖ´Â" sgmlÀº < fetter.org/Bzip2-HOWTO> ¿¡ ÀÖ´Ù. 1. ¼Ò°³Bzip2´Â ÀڷḦ ¾ÐÃàÇϱâ À§ÇÑ ÁÁÀº »õ·Î¿î ¾Ë°í¸®ÁòÀÌ´Ù. ÀϹÝÀûÀ¸·Î gzipÀ¸·Î ÇÑ °Í º¸´Ù 60-70%ÀÇ Å©±â·Î ¸¸µç´Ù. ÀÌ ¹®¼´Â ´ç½ÅÀ» bzip2¸¦ ÅëÇÏ¿© ÀÏ¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÌ¿ëÇÏ°Ô ¸¸µé °ÍÀÌ´Ù. ÀÌ ¹®¼ÀÇ ¹Ì·¡ÀÇ ¹öÀüÀº bzip2¸¦ ¸¸µç Julian Seward < Julian_Seward@muraroa.demon.co.uk> °¡ Ä£ÀýÈ÷ ¾´ bzip2 C ¶óÀ̺귯¸®ÀÎ libbzip2°¡ ÀÖÀ» °ÍÀÌ´Ù. ¶óÀ̺귯¸®¿¡ °üÇÑ ³·Àº ·¹º§ÀÇ bzip2 ¸Þ´º¾óÀÌ < www.bzip2.org/bzip2/docs/manual_toc.html> ¿¡ ÀÖ´Ù. ÀÌ ¹®¼ÀÇ ¹Ì·¡ÀÇ ¹öÀüµéÀº ¾Æ¸¶ ¶ÇÇÑ bzip2¸¦ ¸®´ª½º Ä¿³Î¿¡¼ ½á¾ßÇÏ´ÂÁö (±×¸®°í ¾î¶»°Ô)¿¡ °üÇÑ ÇØ¼³¿¡ ´ëÇÑ ¿ä¾àÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù. 1.1 °³Á¤ÆÇ ¿ª»çv2.00``Bzip2¸¦ less¿Í °°ÀÌ »ç¿ëÇϱâ'' ºÎºÐÀÌ º¯°æµÇ¾ú´Ù ±×·¡¼ .tar.bzip2 ÆÄÀÏÀ» ½ÇÁ¦·Î ÀÐÀ»¼ö ÀÖ´Ù. Á¤Á¤ÇÑ °Í¿¡ ´ëÇØ Nicola Fabiano < mc864mclink.it> ¿¡°Ô °¨»çÇÑ´Ù. buzzit À¯Æ¿¸®Æ¼°¡ °»½ÅµÇ¾ú´Ù. tar Á¤º¸°¡ °»½ÅµÇ¾ú´Ù. v1.92``Bzip2 ¹ÙÀ̳ʸ® ¾ò±â'' ºÎ¹®ÀÌ º¯°æµÇ¾ú°í, S.u.S.E.¿¡ Ãß°¡ÇÑ °ÍÀ» Æ÷ÇÔ ÇÑ´Ù. v1.91¿ÀŸ°¡ ±³Á¤µÇ¾ú°í ``Bzip2¸¦ tar°ú °°ÀÌ ¾²´Â ºÎ¹®''ÀÇ ¼Ð Ç¥ÇöÇü½ÄÀÇ ÀÏ ºÎ¸¦ ±ú²ýÇÏ°Ô Çß´Ù. ÀÌ °Íµé¿¡ ´ëÇØ Alessandro Rubini¿¡°Ô °¨»çÇÑ´Ù. ÃÖÃÊÀÇ bzip2 µ¥ÀÌÅ͸¦ Áþ¹âÁö ¾Ê±â À§ÇØ buzzit ÅøÀ» °»½ÅÇß´Ù. Zgrep°°Àº ÅøÀÎ bgrep°¡ Ãß°¡µÇ¾ú´Ù. v1.9Gcc 2.7.* ¹®Á¦¸¦ ±ú²ýÇÏ°Ô Çß´Ù. À̰ÍÀ» ÁöÀûÇÑ Ulrik Dickow¿¡°Ô °¨»çÇÑ´Ù. Leonard Jean-MarcÀÇ ÈǸ¢ÇÑ tar°ú °°ÀÌ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Ãß°¡µÇ¾ú´Ù. Linux AkerlundÀÇ ½º¿þµ§ ¹ø¿ªÀÌ Ãß°¡µÇ¾ú´Ù. Arnaud LaunayÀÇ Á¦¾ÈÀ¸·Î wu-ftpd ºÎ¹®À» °íÃÆ´Ù. ¹ø¿ªµéÀÌ ±×µé ÀÚ½ÅÀÇ ºÎ¹®À¸·Î ¿Å°ÜÁ³´Ù. v1.8Buzzit°ú ±×°ÍµéÀÌ ¼ÓÇѰ÷ÀÇ sgmlÀÇ tar.diff¸¦ ³Ö¾ú´Ù. ±¸µÎÁ¡°ú Çü½ÄÀ» ¼öÁ¤Çß´Ù. Arnaud Launay¿¡°Ô ³ªÀÇ º¹»ç¸¦ Á¤Á¤ÇÑ ±×ÀÇ µµ¿ò¿¡ ´ëÇØ °¨»ç ÇÑ´Ù. :-) ´ëÁßÀÇ °ü½É ºÎÁ·À¸·Î »õ·Î¿î Àû´çÇÑ xv ÇÁ·ÎÁ§Æ®¸¦ Çß´Ù. ÀÌ ¹®¼ÀÇ ¹Ì·¡ÀÇ ¹öÀüÀ» À§ÇÑ ¹®Á¦¸¦ Ãß°¡Çß´Ù. v1.7Buzzit À¯Æ¿¸®Æ¼°¡ Ãß°¡µÇ¾ú´Ù. Gnu tar¿¡ ´ëÇÑ ÆÐÄ¡¸¦ °íÃÆ´Ù. v1.6TenThumbsÀÇ Netscape enabler°¡ Ãß°¡µÇ¾ú´Ù. ¶ÇÇÑ ±×ÀÇ Á¦¾ÈÀ¸·Î lesspipe.sh¸¦ º¯°æÇß´Ù. Áö±Ýº¸´Ù ÈǸ¢ÇÏ°Ô ÀÛµ¿ÇÒ °ÍÀÌ´Ù. v1.5Arnaud LaunayÀÇ ÇÁ¶û½º¾î ¹ø¿ª, ±×¸®°í ±×ÀÇ wu-ftpd ÆÄÀÏÀÌ Ãß°¡µÇ¾ú´Ù. v1.4Tetsu IsajiÀÇ ÀϺ» ¹ø¿ªÀÌ Ãß°¡µÇ¾ú´Ù. v1.3Ulrik DickowÀÇ 19.30¿Í ´õ ³ôÀº ¼öÁØÀÇ .emacs°¡ Ãß°¡µÇ¾ú´Ù. (¶ÇÇÑ ±×ÀÇ Á¦¾ÈÀ¸·Î emacsÀÇ jka-compr.elÆÐÄ¡°¡ Á¤Á¤µÇ¾ú´Ù. ÀÌ·±! Bzip2ÀÇ Ç÷¡±×°¡ ¾ÆÁ÷(?) ¾ø±º.) v1.2EmacsÀÇ ÆÐÄ¡°¡ º¯°æµÇ¾î¼ ÀÚµ¿ÀûÀ¸·Î .bz2 ÆÄÀϵéÀ» ÀνÄÇÑ´Ù. v1.1EmacsÀÇ ÆÐÄ¡°¡ Ãß°¡µÇ¾ú´Ù. v1.0¶ó¿îµå 1. 2. Bzip2 ¾ò±âBzip2ÀÇ È¨ÆäÀÌÁö´Â ¿µ±¹ Ȩ »çÀÌÆ®ÀÎ < www.bzip2.org>¿¡ ÀÖ°í. ¹Ì±¹ ¹Ì·¯»çÀÌÆ®´Â < www.digistar.com/bzip2/index.html> ¿¡ ÀÖ´Ù. 2.1 ´ç½ÅÀÇ ¾ð¾îÀÇ bzip2-HOWTOÇÁ¶û½ºÀεéÀº ¾Æ¸¶ Arnaud LaunayÀÇ ÇÁ¶û½º¾î ¹®¼¸¦ Âü°íÇϱ⸦ ¹Ù¶ö °ÍÀÌ´Ù. À¥ ¹öÀüÀº < www.freenix.fr/linux/HOWTO/mini/Bzip2.html> ¿¡ ÀÖ°í, ftp´Â ftp.lip6.fr/pub/linux/french/docs/HOWTO/mini/Bzip2.gz ¿©±â ÀÖ´Ù. Arnaud¿Í ÀüÀÚ¸ÞÀÏ·Î ¿¬¶ôÇÒ ¼ö ÀÖ´Ù. ¸ÞÀÏ ÁÖ¼Ò´Â < zoro@mygale.org> ÀÌ´Ù. ÀϺ»ÀεéÀº ¾Æ¸¶ Tetsu IsajiÀÇ ÀϺ»¾î ¹®¼¸¦ ÂüÁ¶Çϱ⸦ ¹Ù¶ö °ÍÀÌ´Ù. ¹®¼´Â < jf.gee.kyoto-u.ac.jp/JF/JF.html> ¿¡ ÀÖ´Ù. IsajiÀÇ È¨ÆäÀÌÁö < www2s.biglobe.ne.jp/~kaien/>¿¡¼ ¿¬¶ôÇÒ¼ö ÀÖ°í, ȤÀº ÀüÀÚ¸ÞÀÏ·Î ÇÒ ¼ö ÀÖ´Ù. ¸ÞÀÏ ÁÖ¼Ò´Â < isaji@mxu.meshnet.or.jp> ÀÌ´Ù. ½º¿þµ§ÀεéÀº ¾Æ¸¶ Linus AkerlundÀÇ ½º¿þµ§¾î ¹®¼¸¦ ÂüÁ¶Çϱ⸦ ¹Ù¶ö °ÍÀÌ ´Ù. ¹®¼´Â < user.tninet.se/~uxm165t/linux_doc.html> ¿¡ ÀÖ´Ù. Linus¿Í ÀüÀÚ¸ÞÀÏ·Î ¿¬¶ôÇÒ¼ö ÀÖ´Ù. ¸ÞÀÏ ÁÖ¼Ò´Â < uxm165t@tninet.se> ÀÌ´Ù. 2.2 ÄÄÆÄÀÏµÈ bzip2 ¹ÙÀ̳ʸ® ¾ò±âȨ »çÀÌÆ®¸¦ ºÁ¶ó. 2.3 Bzip2 ¼Ò½º ¾ò±â°ø½ÄÀûÀÎ »çÀÌÆ®¿¡ ÀÖ´Ù (``Bzip2 ¾ò±â'' ¸¦ ºÁ¶ó. 2.4 ´ç½ÅÀÇ ÄÄÇ»ÅÍ·Î bzip2 ÄÄÆÄÀÏÇϱ⸸¾à ´ç½ÅÀÌ gcc 2.7.*À» °¡Áö°í ÀÖÀ¸¸é, ´ÙÀ½ ¶óÀÎÀ» ¹Ù²ã¶ó CFLAGS = -O3 -fomit-frame-pointer -funroll-loops À¸·Î CFLAGS = -O2 -fomit-frame-pointer -O3 °ú -O2¸¦ ¹Ù²Ù°í -funroll-loops¸¦ ³Ö´Â´Ù. Ä¿³Î ÄÄÆÄÀÏÇÒ¶§ ´ç½ÅÀº ¾Æ ¸¶ ¾î¶°ÇÑ -m* Ç÷¡±×¸¦(¿¹¸¦µé¾î, -m486) Ãß°¡ÇÏ±æ ¿øÇÒ °ÍÀÌ´Ù. -funroll-loops¸¦ ÇÇÇÏ´Â °ÍÀº Á¦ÀÏ Áß¿äÇÑ ºÎºÐÀ̰í, gcc 2.7ÀÇ À߸øµÈ ÄÚ µå¸¦ »ý¼ºÇÏ´Â ¸¹Àº ¿øÀÎÀÌ µÇ°í, gcc 2.7ÀÇ Äڵ尡 ´õ ´À¸®°í ´õ Ä¿Áö±â ¶§¹®ÀÌ´Ù. ´Ù¸¥ ÄÄÆÄÀÏ·¯µé (lcc, egcs, gcc 2.8.x)À» À§ÇØ µðÆúÆ® CFLAGS °¡ ÁÁ´Ù. ±× ÈÄ, README´ë·Î ¹Ù·Î ±×°ÍÀ» ¸¸µé°í ¼³Ä¡Çضó. 3. Bzip2¸¦ ´Üµ¶À¸·Î ¾²±âÁÁÀº ¸Þ´º¾ó ÆäÀÌÁö¸¦ ÀоîºÁ¶ó :) 4. Bzip2¸¦ tar°ú °°ÀÌ ¾²±â¹Ù²Ù¾î ¸»Çϸé bzip2¸¦ tar°ú °°ÀÌ ¾²´Â ¼¼°¡Áö ¹æ¹ýÀÌ ¹Ø¿¡ ¸®½ºÆ® µÈ´Ù. 4.1 °¡Àå ½¬¿î ¼³Ä¡:ÀÌ ¹æ¹ýÀº ÀüÇô ¼³Ä¡°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù. ÇöÀç µð·ºÅ丮ÀÇ foo.tar.bz2ó·³ tar°ú bzip2·Î ¾ÐÃàµÈ °ÍÀ» Ç®·Á¸é /path/to/bzip2 -cd foo.tar.bz2 | tar xf - ¶Ç´Â tar --use-compress-prog=bzip2 xf foo.tar.bz2 ÀÌ ÀÛ¾÷Àº Á¾Á¾ PITA °¡ µÉ ¼öµµ ÀÖ´Ù. 4.2 root Ư±Ç ¾øÀÌ ½±°Ô ¼³Ä¡ÇÏ°í »ç¿ëÇϱâ:ÆÁ¿¡ ´ëÇØ Leonard Jean-Marc < leonard@sct1.is.belgacom.be>¿¡°Ô °¨»çÇÑ´Ù. csh¿Í bash ±¸º°ÀÌ »ý±â´Â °Í¿¡ ´ëÇØ Alessandro Rubini < rubini@morgana.systemy.it> ¿¡°Ô ¿ª½Ã °¨»çÇÑ´Ù. ´ç½ÅÀÇ .bashrc, À̰Ͱú °°Àº ¶óÀÎÀ» ³Ö¾î¶ó: alias btar='tar --use-compress-program /usr/local/bin/bzip2 ' ´ç½ÅÀÇ .tcshrc, ¶Ç´Â .cshrc, À̰Ͱú À¯»çÇÏ°Ô º¸ÀÌ´Â ¶óÀÎ: alias btar 'tar --use-compress-program /usr/local/bin/bzip2' 4.3 ·çÆ®ÀÇ Á¢±ÙÀÌ ÇÊ¿äÇÏÁö¸¸ ½±°Ô »ç¿ëÇϱâ.´ç½ÅÀÇ tarÀ» GNUÀÇ °¡Àå »õ·Î¿î ¹öÀüÀ¸·Î °»½ÅÇØ¶ó, ÇöÀç´Â 1.13.10ÀÌ´Ù. ±×°ÍÀº GNUÀÇ ftp »çÀÌÆ® alpha.gnu.org/gnu/tar/¿¡¼ ãÀ» ¼ö ÀÖ°í ȤÀº ¾î¶² ¹Ì·¯. 5. Bzip2¸¦ less¿Í °°ÀÌ ¾²±âbzip2À¸·Î ¾ÐÃàµÈ ÆÄÀÏÀ» bunzip2 ¾øÀÌ less¸¦ ÀÌ¿ëÇÏ·Á¸é lesspipr.sh (man less) ÆÄÀÏÀ» ´ÙÀ½°ú °°ÀÌ ¸¸µé¾î¶ó:
#!/bin/sh
# This is a preprocessor for 'less'. It is used when this environment
# variable is set: LESSOPEN="|lesspipe.sh %s"
case "$1" in
*.tar) tar tvvf $1 2>/dev/null ;; # View contents of various tar'd files
*.tgz) tar tzvvf $1 2>/dev/null ;;
# This one work for the unmodified version of tar:
*.tar.bz2) bzip2 -cd $1 $1 2>/dev/null | tar tvvf - ;;
#This one works with the patched version of tar:
# *.tar.bz2) tyvvf $1 2>/dev/null ;;
*.tar.gz) tar tzvvf $1 2>/dev/null ;;
*.tar.Z) tar tzvvf $1 2>/dev/null ;;
*.tar.z) tar tzvvf $1 2>/dev/null ;;
*.bz2) bzip2 -dc $1 2>/dev/null ;; # View compressed files correctly
*.Z) gzip -dc $1 2>/dev/null ;;
*.z) gzip -dc $1 2>/dev/null ;;
*.gz) gzip -dc $1 2>/dev/null ;;
*.zip) unzip -l $1 2>/dev/null ;;
*.1|*.2|*.3|*.4|*.5|*.6|*.7|*.8|*.9|*.n|*.man) FILE=`file -L $1` ; # groff src
FILE=`echo $FILE | cut -d ' ' -f 2`
if [ "$FILE" = "troff" ]; then
groff -s -p -t -e -Tascii -mandoc $1
fi ;;
*) cat $1 2>/dev/null ;;
# *) FILE=`file -L $1` ; # Check to see if binary, if so -- view with 'strings'
# FILE1=`echo $FILE | cut -d ' ' -f 2`
# FILE2=`echo $FILE | cut -d ' ' -f 3`
# if [ "$FILE1" = "Linux/i386" -o "$FILE2" = "Linux/i386" \
# -o "$FILE1" = "ELF" -o "$FILE2" = "ELF" ]; then
# strings $1
# fi ;;
esac
6. Bzip2¸¦ emacs¿Í °°ÀÌ ¾²±â6.1 ¸ðµÎ¸¦ À§ÇØ emacs ¹Ù²Ù±â:³ª´Â ÀÚµ¿¾ÐÃà¸ðµå¸¦ Ãß°¡ÇÑ jka-compr.el ÆÐÄ¡¿¡ µû¶ó ½è´Ù. ºÎÀμ: ³ª´Â emacs-20.0¿¡¼¸¸ Å×½ºÆ®¸¦ ÇØºÃ´Ù, ±×·¯³ª ´Ù¸¥ ¹öÀü¿¡ ºñ½Á ÇÏ°Ô Á¢±ÙÇÏÁö ¸øÇÑ´Ù°í ¹ÏÀ» ÀÌÀ¯°¡ ¾ø´Ù. ÀÌ °ÍÀ» ½á¶ó,
--- jka-compr.el Sat Jul 26 17:02:39 1997
+++ jka-compr.el.new Thu Feb 5 17:44:35 1998
@@ -44,7 +44,7 @@
;; The variable, jka-compr-compression-info-list can be used to
;; customize jka-compr to work with other compression programs.
;; The default value of this variable allows jka-compr to work with
-;; Unix compress and gzip.
+;; Unix compress and gzip. David Fetter added bzip2 support :)
;;
;; If you are concerned about the stderr output of gzip and other
;; compression/decompression programs showing up in your buffers, you
@@ -121,7 +121,9 @@
;;; I have this defined so that .Z files are assumed to be in unix
-;;; compress format; and .gz files, in gzip format.
+;;; compress format; and .gz files, in gzip format, and .bz2 files,
+;;; in the snappy new bzip2 format from <url url="http://www.muraroa.demon.co.uk" name="www.muraroa.demon.co.uk" >.
+;;; Keep up the good work, people!
(defcustom jka-compr-compression-info-list
;;[regexp
;; compr-message compr-prog compr-args
@@ -131,6 +133,10 @@
"compressing" "compress" ("-c")
"uncompressing" "uncompress" ("-c")
nil t]
+ ["\\.bz2\\'"
+ "bzip2ing" "bzip2" ("")
+ "bunzip2ing" "bzip2" ("-d")
+ nil t]
["\\.tgz\\'"
"zipping" "gzip" ("-c" "-q")
"unzipping" "gzip" ("-c" "-q" "-d")
6.2 ÇÑ »ç¶÷À» À§ÇØ emacs ¹Ù²Ù±â:Kampsax Technology¿¡ ÀÖ´Â ½Ã½ºÅÛ ÇÁ·Î±×·¡¸ÓÀÎ Ulrik Dickow, ukd@kampsax.dk <mailto:ukdATkampsax.dk> ¿¡°Ô À̰Ϳ¡ °üÇØ °¨»çÇÑ´Ù: ´ç½ÅÀÌ ½Ã½ºÅÛ°ü¸®ÀÚ°¡ ¾Æ´Ò¶§ ±×°ÍÀ» ¸¸µé¸é bzip2¸¦ ÀÚµ¿ÀûÀ¸·Î ¾µ ¼ö ÀÖ´Ù. ´ç½ÅÀÇ .emacs ÆÄÀÏ´ÙÀ½¿¡ Áö±Ý Ãß°¡Çضó.
;; Automatic (un)compression on loading/saving files (gzip(1) and similar)
;; We start it in the off state, so that bzip2(1) support can be added.
;; Code thrown together by Ulrik Dickow for ~/.emacs with Emacs 19.34.
;; Should work with many older and newer Emacsen too. No warranty though.
;;
(if (fboundp 'auto-compression-mode) ; Emacs 19.30+
(auto-compression-mode 0)
(require 'jka-compr)
(toggle-auto-compression 0))
;; Now add bzip2 support and turn auto compression back on.
(add-to-list 'jka-compr-compression-info-list
["\\.bz2\\(~\\|\\.~[0-9]+~\\)?\\'"
"zipping" "bzip2" ()
"unzipping" "bzip2" ("-d")
nil t])
(toggle-auto-compression 1 t)
7. Bzip2¸¦ wu-ftpd¿Í °°ÀÌ ¾²±âArnaud Launay¿¡°Ô ÀÌ bandwidth ¼¼À̹ö¿¡ ´ëÇØ °¨»çÇÑ´Ù. À̰ÍÀº bzip2 ¾ÐÃà°ú ¾ÐÃàÇØÁ¦¸¦ /etc/ftpconversions ¿¡ ÇÑ´Ù. °æ·Î¸¦ Á¤È®È÷ ÇØ¾ß ÇÒ °ÍÀ» ¸í½ÉÇ϶ó. :.Z: : :/bin/compress -d -c %s:T_REG|T_ASCII:O_UNCOMPRESS:UNCOMPRESS : : :.Z:/bin/compress -c %s:T_REG:O_COMPRESS:COMPRESS :.gz: : :/bin/gzip -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:GUNZIP : : :.gz:/bin/gzip -9 -c %s:T_REG:O_COMPRESS:GZIP :.bz2: : :/bin/bzip2 -cd %s:T_REG|T_ASCII:O_UNCOMPRESS:BUNZIP2 : : :.bz2:/bin/bzip2 -9 -c %s:T_REG:O_COMPRESS:BZIP2 : : :.tar:/bin/tar -c -f - %s:T_REG|T_DIR:O_TAR:TAR : : :.tar.Z:/bin/tar -c -Z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+COMPRESS : : :.tar.gz:/bin/tar -c -z -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+GZIP : : :.tar.bz2:/bin/tar -c -y -f - %s:T_REG|T_DIR:O_COMPRESS|O_TAR:TAR+BZIP2 8. Bzip2¸¦ grep¿Í °°ÀÌ ¾²±â³»°¡ bgrepÀ» ½ÇÇàÇÒ ¶§¿¡´Â linux ¿Í °°ÀÌ ¿À´Â zgrep¿¡ »ç¼ÒÇÑ ¼öÁ¤ÀÌ °¡ÇØÁø´Ù. ´ç½ÅÀº bunzip2 ¸í·ÉÀÇ »ç¿ë ¾øÀ̵µ ÀÏ´ÜÀº grepÀ» »ç¿ëÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
#!/bin/sh
# bgrep -- a wrapper around a grep program that decompresses files as needed
PATH="/usr/bin:$PATH"; export PATH
prog=`echo $0 | sed 's|.*/||'`
case "$prog" in
*egrep) grep=${EGREP-egrep} ;;
*fgrep) grep=${FGREP-fgrep} ;;
*) grep=${GREP-grep} ;;
esac
pat=""
while test $# -ne 0; do
case "$1" in
-e | -f) opt="$opt $1"; shift; pat="$1"
if test "$grep" = grep; then # grep is buggy with -e on SVR4
grep=egrep
fi;;
-*) opt="$opt $1";;
*) if test -z "$pat"; then
pat="$1"
else
break;
fi;;
esac
shift
done
if test -z "$pat"; then
echo "grep through bzip2 files"
echo "usage: $prog [grep_options] pattern [files]"
exit 1
fi
list=0
silent=0
op=`echo "$opt" | sed -e 's/ //g' -e 's/-//g'`
case "$op" in
*l*) list=1
esac
case "$op" in
*h*) silent=1
esac
if test $# -eq 0; then
bzip2 -cd | $grep $opt "$pat"
exit $?
fi
res=0
for i do
if test $list -eq 1; then
bzip2 -cdfq "$i" | $grep $opt "$pat" > /dev/null && echo $i
r=$?
elif test $# -eq 1 -o $silent -eq 1; then
bzip2 -cd "$i" | $grep $opt "$pat"
r=$?
else
bzip2 -cd "$i" | $grep $opt "$pat" | sed "s|^|${i}:|"
r=$?
fi
test "$r" -ne 0 && res="$r"
done
exit $res
9. Bzip2¸¦ XÀÇ ³Ý½ºÄÉÀÌÇÁ°ú °°ÀÌ ¾²±â. |
You will be singled out for promotion in your work. |











