Bzip2 mini-HOWTO David Fetter, david@fetter.org v2.00, 22 August 1999 ÀÌ ¹®¼­´Â »õ·Î¿î ¾ÐÃà ÇÁ·Î±×·¥ bzip2¸¦ ¾î¶»°Ô »ç¿ëÇÏ´ÂÁö À̾߱âÇÑ´Ù. ÇöÀçÀÇ »çÀÌÆ® ¿¡ sgmlÀÇ ·ÎÄÃÄ«Çǰ¡ ÀÖ°í, ±×¸®°í "±ÇÀ§°¡ ÀÖ´Â" sgmlÀº ¿¡ ÀÖ´Ù. ______________________________________________________________________ Â÷·Ê 1. ¼Ò°³ 1.1 (BF 1.1.1 v2.00 1.1.2 v1.92 1.1.3 v1.91 1.1.4 v1.9 1.1.5 v1.8 1.1.6 v1.7 1.1.7 v1.6 1.1.8 v1.5 1.1.9 v1.4 1.1.10 v1.3 1.1.11 v1.2 1.1.12 v1.1 1.1.13 v1.0 2. Bzip2 ¾ò±â 2.1 ´ç½ÅÀÇ ¾ð¾îÀÇ bzip2-HOWTO 2.2 ÄÄÆÄÀϵÇÁö ¾ÊÀº bzip2 ¹ÙÀ̳ʸ® ¾ò±â 2.3 Bzip2 ¼Ò½º ¾ò±â 2.4 ´ç½ÅÀÇ ÄÄÇ»ÅÍ·Î bzip2 ÄÄÆÄÀÏÇϱâ 3. Bzip2¸¦ ±× °ÍÀ¸·Î »ç¿ëÇϱâ 4. Bzip2¸¦ tar°ú °°ÀÌ ¾²±â 4.1 ¼³Ä¡ÇÏ´Â °ÍÀº °¡Àå ½±´Ù: 4.2 ¼³Ä¡ÇÏ´Â °Í°ú ÀûÀýÇÏ°Ô ¾²´Â°ÍÀº ½±°í, rootÀÇ Æ¯±ÇÀÌ ÇÊ¿äÇÏÁö ¾Ê´Ù: 4.3 ¾²´Â°Í ¶ÇÇÑ ½±´Ù, ±×·¯³ª ·çÆ®ÀÇ Á¢±ÙÀÌ ÇÊ¿ä¾ø´Ù. 5. Bzip2¸¦ less¿Í °°ÀÌ ¾²±â 6. Bzip2¸¦ emacs¿Í °°ÀÌ ¾²±â 6.1 ¸ðµÎ¸¦ À§ÇØ emacs¸¦ ¹Ù²Ù±â: 6.2 ÇÑ »ç¶÷À» À§ÇØ emacs¸¦ ¹Ù²Ù±â: 7. Bzip2¸¦ wu-ftpd¿Í °°ÀÌ ¾²±â 8. Bzip2¸¦ grep¿Í °°ÀÌ ¾²±â 9. Bzip2¸¦ XÀÇ Netscape¿Í °°ÀÌ ¾²±â. 10. Bzip2·Î ´Ù¸¥ ¾ÐÃà Çü½ÄÀ¸·Î ´Ù½Ã ¾ÐÃàÇϱâ ______________________________________________________________________ 1. ¼Ò°³ Bzip2´Â ÀڷḦ ¾ÐÃàÇϱâ À§ÇÑ ÁÁÀº »õ·Î¿î ¾Ë°í¸®ÁòÀÌ´Ù. ÀϹÝÀûÀ¸·Î gzip ÀÇ Å©±âÀÇ 60-70%·Î ÆÄÀÏÀ» ¸¸µç´Ù. ÀÌ ¹®¼­´Â ´ç½ÅÀ» bzip2¸¦ ÅëÇÏ¿© ÀÏ¹Ý ¾ÖÇø®ÄÉÀ̼ÇÀ» ÀÌ¿ëÇÏ°Ô ¸¸µé °ÍÀÌ ´Ù. ±× ¹®¼­ÀÇ ¹Ì·¡ÀÇ ¹öÀüÀº libbzip2ÀÇ ¾ÖÇø®ÄÉÀ̼Ç, bzip2¸¦ ¸¸µç Julian Seward °¡ Ä£ÀýÈ÷ ¾´ bzip2 C ¶óÀ̺귯¸®°¡ ÀÖÀ» °ÍÀÌ´Ù. Bzip2 ¸Þ´º¾ó ¿¡¼­ ãÀ» ¼ö ÀÖ´Â ¶óÀ̺귯¸®¿¡ °üÇÑ ³·Àº ¼öÁØÀÇ Á¤º¸°¡ Ãß°¡µÇ¾ú´Ù. ±× ¹®¼­ÀÇ ¹Ì·¡ÀÇ ¹öÀüµéÀº ¾Æ¸¶ ¶ÇÇÑ bzip2¸¦ ¸®´ª½º Ä¿³Î¿¡¼­ ½á¾ßÇÏ´ÂÁö (±×¸®°í ¾î¶»°Ô)¿¡ °üÇÑ ÇØ¼³¿¡ ´ëÇÑ ¿ä¾àÀ» Æ÷ÇÔÇÒ °ÍÀÌ´Ù. 1.1. °³Á¤ÆÇ ¿ª»ç 1.1.1. v2.00 ``Bzip2¸¦ less¿Í °°ÀÌ »ç¿ëÇϱâ'' ºÎ¹®ÀÌ º¯°æµÇ¾ú´Ù ±×·¡¼­ .tar.bzip2 ÆÄÀÏÀ» ½ÇÁ¦·Î ÀÐÀ»¼ö ÀÖ´Ù. Á¤Á¤ÇÑ °Í¿¡ ´ëÇØ Nicola Fabiano ¿¡°Ô °¨»çÇÑ´Ù. buzzit À¯Æ¿¸®Æ¼°¡ °»½ÅµÇ¾ú´Ù. tar Á¤º¸°¡ °»½ÅµÇ¾ú´Ù. 1.1.2. v1.92 ``Bzip2 ¹ÙÀ̳ʸ® ¾ò±â'' ºÎ¹®ÀÌ º¯°æµÇ¾ú°í, S.u.S.E.ÀÇ Ãß°¡ÇÑ °ÍÀ» Æ÷ÇÔ ÇÑ´Ù. 1.1.3. v1.91 ¿ÀŸ°¡ ±³Á¤µÇ¾ú°í ``Bzip2¸¦ tar°ú °°ÀÌ ¾²´Â ºÎ¹®''ÀÇ ¼Ð Ç¥ÇöÇü½ÄÀÇ ÀÏ ºÎ¸¦ ±ú²ýÇÏ°Ô Çß´Ù. ÀÌ °Íµé¿¡ ´ëÇØ Alessandro Rubini¿¡°Ô °¨»çÇÑ´Ù. ÃÖÃÊÀÇ bzip2 µ¥ÀÌÅ͸¦ Áþ¹âÁö ¾Ê±â À§ÇØ buzzit ÅøÀ» °»½ÅÇß´Ù. Zgrep°°Àº ÅøÀÎ bgrep°¡ Ãß°¡µÇ¾ú´Ù. 1.1.4. v1.9 Gcc 2.7.* ¹®Á¦¸¦ ±ú²ýÇÏ°Ô Çß´Ù. À̰ÍÀ» ÁöÀûÇÑ Ulrik Dickow¿¡°Ô °¨»çÇÑ ´Ù. Leonard Jean-MarcÀÇ ÈǸ¢ÇÑ tar°ú °°ÀÌ »ç¿ëÇÏ´Â ¹æ¹ýÀÌ Ãß°¡µÇ¾ú´Ù. Linux AkerlundÀÇ ½º¿þµ§ ¹ø¿ªÀÌ Ãß°¡µÇ¾ú´Ù. Arnaud LaunayÀÇ Á¦¾ÈÀ¸·Î wu-ftpd ºÎ¹®À» °íÃÆ´Ù. ¹ø¿ªµéÀÌ ±×µé ÀÚ½ÅÀÇ ºÎ¹®À¸·Î ¿Å°ÜÁ³´Ù. 1.1.5. v1.8 Buzzit°ú ±×°ÍµéÀÌ ¼ÓÇѰ÷ÀÇ sgmlÀÇ tar.diff¸¦ ³Ö¾ú´Ù. ±¸µÎÁ¡°ú Çü½ÄÀ» ¼öÁ¤Çß´Ù. Arnaud Launay¿¡°Ô ³ªÀÇ º¹»ç¸¦ Á¤Á¤ÇÑ ±×ÀÇ µµ¿ò¿¡ ´ëÇØ °¨»ç ÇÑ´Ù. :-) ´ëÁßÀÇ °ü½ÉÀÇ ºÎÁ·À¸·Î »õ·Î¿î Àû´çÇÑ xv ÇÁ·ÎÁ§Æ®¸¦ Çß´Ù. ±× ¹®¼­ÀÇ ¹Ì·¡ÀÇ ¹öÀüÀ» À§ÇÑ ¹®Á¦¸¦ Ãß°¡Çß´Ù. 1.1.6. v1.7 Buzzit À¯Æ¿¸®Æ¼°¡ Ãß°¡µÇ¾ú´Ù. Gnu tar¿¡ ´ëÇÑ ÆÐÄ¡¸¦ °íÃÆ´Ù. 1.1.7. v1.6 Added TenThumbs' Netscape enabler. ¶ÇÇÑ ±×ÀÇ Á¦¾ÈÀ¸·Î lesspipe.sh¸¦ º¯°æÇß´Ù. Áö±Ýº¸´Ù ÈǸ¢ÇÏ°Ô ÀÛµ¿ÇÒ °ÍÀÌ´Ù. 1.1.8. v1.5 Arnaud LaunayÀÇ ÇÁ¶û½º¾î ¹ø¿ª, ±×¸®°í ±×ÀÇ wu-ftpd ÆÄÀÏÀÌ Ãß°¡µÇ¾ú´Ù. 1.1.9. v1.4 Tetsu IsajiÀÇ ÀϺ» ¹ø¿ªÀÌ Ãß°¡µÇ¾ú´Ù. 1.1.10. v1.3 Ulrik DickowÀÇ 19.30¿Í ´õ ³ôÀº ¼öÁØÀÇ .emacs°¡ Ãß°¡µÇ¾ú´Ù. (¶ÇÇÑ ±×ÀÇ Á¦¾ÈÀ¸·Î emacsÀÇ jka-compr.elÆÐÄ¡°¡ Á¤Á¤µÇ¾ú´Ù. ÀÌ·±! Bzip2ÀÇ ±â°¡ ¾ÆÁ÷(?) ¾ø±º.) 1.1.11. v1.2 EmacsÀÇ ÆÐÄ¡°¡ º¯°æµÇ¾î¼­ ÀÚµ¿ÀûÀ¸·Î .bz2 ÆÄÀϵéÀ» ÀνÄÇÑ´Ù. 1.1.12. v1.1 EmacsÀÇ ÆÐÄ¡°¡ Ãß°¡µÇ¾ú´Ù. 1.1.13. v1.0 ¶ó¿îµå 1. 2. Bzip2 ¾ò±â Bzip2ÀÇ È¨ÆäÀÌÁö´Â ¿µ±¹ Ȩ »çÀÌÆ® . ¹Ì±¹ ¹Ì·¯»çÀÌÆ® . 2.1. ´ç½ÅÀÇ ¾ð¾îÀÇ bzip2-HOWTO ÇÁ¶û½ºÀεéÀº ¾Æ¸¶ Arnaud LaunayÀÇ ÇÁ¶û½º ¹®¼­¸¦ Âü°íÇϱ⸦ ¹Ù¶ö °ÍÀÌ´Ù. À¥ ¹öÀü , ±×¸®°í ftp Arnaud¿Í ÀüÀÚ¸ÞÀÏ·Î ¿¬¶ôÇÒ ¼ö ÀÖ´Ù. ¸ÞÀÏ ÁÖ¼Ò´Â ÀϺ»ÀεéÀº ¾Æ¸¶ Tetsu IsajiÀÇ ÀϺ» ¹®¼­¸¦ ÂüÁ¶Çϱ⸦ ¹Ù¶ö °ÍÀÌ´Ù. . Isaji¿Í ȨÆäÀÌÁö ¿¡¼­ ¿¬¶ôÇÒ¼ö ÀÖ°í, ȤÀº ÀüÀÚ¸ÞÀÏ·Î ÇÒ¼öÀÖ´Ù. ½º¿þµ§ÀεéÀº ¾Æ¸¶ Linus AkerlundÀÇ ½º¿þµ§ ¹®¼­¸¦ ÂüÁ¶Çϱ⸦ ¹Ù¶ö °ÍÀÌ ´Ù . Linus¿Í ÀüÀÚ¸ÞÀÏ ·Î ¿¬¶ôÇÒ¼ö ÀÖ´Ù. 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. ¼³Ä¡Çϴ°ÍÀº °¡Àå ½±´Ù: ÀÌ ¹æ¹ýÀº ÀüÇô ¼³Ä¡°¡ ÇÊ¿äÇÏÁö ¾Ê´Ù. To un-tar the bzip2'd tar archive, foo.tar.bz2 in the current directory, do /path/to/bzip2 -cd foo.tar.bz2 | tar xf - ¶Ç´Â tar --use-compress-prog=bzip2 xf foo.tar.bz2 ÀÌ ÀÏ, ±×·¯³ª but can be a PITA to type often. 4.2. ¼³Ä¡ÇÏ´Â °ÍÀº ½±°í, ÀûÀýÇÏ°Ô »ç¿ëÇϴ°ÍÀº ½±°í, rootÀÇ Æ¯±ÇÀÌ ÇÊ¿äÇÏÁö ¾Ê´Ù: ÆÁ¿¡ ´ëÇØ Leonard Jean-Marc ¿¡°Ô °¨»çÇÑ´Ù. csh¿Í bash ±¸º°ÀÌ »ý±â´Â °Í¿¡ ´ëÇØ Alessandro Rubini ¿¡°Ô ¿ª½Ã °¨»çÇÑ´Ù. ´ç½ÅÀÇ .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 »çÀÌÆ® ¿¡¼­ ãÀ» ¼ö ÀÖ´Ù ¶ÇÇÑ ¾î¶² ¹Ì·¯. 5. Bzip2¸¦ less¿Í °°ÀÌ ¾²±â To uncompress bzip2'd files on the fly, i.e. to be able to use "less" on them without first bunzip2'ing them, you can make a lesspipe.sh (man less) like this: #!/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¿¡¼­¸¸ Å×½ºÆ®¸¦ ÇØºÃ´Ù, ±×·¯³ª ´Ù¸¥ ¹öÀü¿¡ ºñ½Á ÇÏ°Ô Á¢±ÙÇÏÁö ¸øÇÑ´Ù°í ¹ÏÀ» ÀÌÀ¯°¡ ¾ø´Ù. ÀÌ °ÍÀ» ½á¶ó, 1. emacs-20.2/lisp ¼Ò½º µð·ºÅ丮¿¡ °¡¶ó (wherever you untarred it) 2. jka-compr.el.diffºÎ¸¥ ÆÄÀÏÀÇ ¾Æ·¡¿¡ ÆÐÄ¡¸¦ ³õ¾Æ¶ó (±× °ÍÀº Àú ÆÄÀÏ ¿¡ ´Üµ¶À¸·Î ÀÖ¾î¾ßÇÑ´Ù ;). 3. ÇØ¶ó patch < jka-compr.el.diff 4. emacs¸¦ ½ÃÀÛÇØ¶ó, ±×¸®°í ÇØ¶ó M-x byte-compile-file jka-compr.el 5. emacs¸¦ Á¾·áÇØ¶ó. 6. ´ç½ÅÀÇ ÃÖÃÊÀÇ jka-compr.elc¸¦ ¹ö±×ÀÇ ÄÉÀ̽º¾ÈÀÇ ¾ÈÀüÇÑ °÷À¸·Î ¿Å°Ü¶ó. 7. »õ·Î¿î jka-compr.elc¿Í ±× °ÍÀ» ¹Ù²ã¶ó. 8. Áñ°Ü¶ó! --- 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 http://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¸¦ ¹Ù²Ù±â: Thanks for this one go to Ulrik Dickow, ukd@kampsax.dk , Kampsax Technology¿¡ ÀÖ´Â ½Ã½ºÅÛ ÇÁ·Î±×·¡¸Ó: ´ç½ÅÀÌ ½Ã½ºÅÛ°ü¸®ÀÚ°¡ ¾Æ´Ò¶§ ±×°ÍÀ» ¸¸µé¸é 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 ¼¼À̹ö¿¡ ´ëÇØ °¨»çÇÑ´Ù. The following should go in /etc/ftpconversions to do on-the-fly compressions and decompressions with bzip2. Make sure that the paths (like /bin/compress) are right. :.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¿Í °°ÀÌ ¾²±â The following utility, which I call bgrep, is a slight modification of the zgrep which comes with Linux. You can use it to grep through files without bunzip2'ing them first. #!/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ÀÇ Netscape¿Í °°ÀÌ ¾²±â. tenthumbs@cybernex.net says: I also found a way to get Linux Netscape to use bzip2 for Content- Encoding just as it uses gzip. Add this to $HOME/.Xdefaults or $HOME/.Xresources I use the -s option because I would rather trade some decompressing speed for RAM usage. You can leave the option out if you want to. Netscape*encodingFilters: \ x-compress : : .Z : uncompress -c \n\ compress : : .Z : uncompress -c \n\ x-gzip : : .z,.gz : gzip -cdq \n\ gzip : : .z,.gz : gzip -cdq \n\ x-bzip2 : : .bz2 : bzip2 -ds \n 10. Bzip2·Î ´Ù¸¥ ¾ÐÃà Çü½ÄÀ¸·Î ´Ù½Ã ¾ÐÃàÇϱâ The following perl program takes files compressed in other formats (.tar.gz, .tgz. .tar.Z, and .Z for this iteration) and repacks them for better compression. The perl source has all kinds of neat documentation on what it does and how it does what it does. This latest version takes files as input on the command line. Without command line arguments, it tries to repack every file in the current working directory. #!/usr/bin/perl -w ####################################################### # # # This program takes compressed and gzipped programs # # in the current directory and turns them into bzip2 # # format. It handles the .tgz extension in a # # reasonable way, producing a .tar.bz2 file. # # # ####################################################### $counter = 0; $saved_bytes = 0; $totals_file = '/tmp/machine_bzip2_total'; $machine_bzip2_total = 0; @raw = (defined @ARGV)?@ARGV:<*>; foreach(@raw) { next if /^bzip/; next unless /\.(tgz|gz|Z)$/; push @files, $_; } $total = scalar(@files); foreach (@files) { if (/tgz$/) { ($new=$_) =~ s/tgz$/tar.bz2/; } else { ($new=$_) =~ s/\.g?z$/.bz2/i; } $orig_size = (stat $_)[7]; ++$counter; print "Repacking $_ ($counter/$total)...\n"; if ((system "gzip -cd $_ |bzip2 >$new") == 0) { $new_size = (stat $new)[7]; $factor = int(100*$new_size/$orig_size+.5); $saved_bytes += $orig_size-$new_size; print "$new is about $factor% of the size of $_. :",($factor<100)?')':'(',"\n"; unlink $_; } else { print "Arrgghh! Something happened to $_: $!\n"; } } print "You've " , ($saved_bytes>=0)?"saved ":"lost " , abs($saved_bytes) , " bytes of storage space :" , ($saved_bytes>=0)?")":"(" , "\n" ; unless (-e '/tmp/machine_bzip2_total') { system ('echo "0" >/tmp/machine_bzip2_total'); system ('chmod', '0666', '/tmp/machine_bzip2_total'); } chomp($machine_bzip2_total = `cat $totals_file`); open TOTAL, ">$totals_file" or die "Can't open system-wide total: $!"; $machine_bzip2_total += $saved_bytes; print TOTAL $machine_bzip2_total; close TOTAL; print "That's a machine-wide total of ",`cat $totals_file`," bytes saved.\n"; .