Nästa Föregående Innehållsförteckning

4. Använda bzip2 med tar

Här kommer tre sätt att använda bzip2 med tar:

4.1 Enklast att konfigurera:

Denna metod kräver ingen konfigurering alls. För att packa upp det bzip2-ade tar-arkivet foo.tar.bz i den aktuella katalogen, skriv

/path/to/bzip2 -cd foo.tar.bz2 | tar xf -

Detta fungerar, men det kan vara jobbigt att behöva göra det ofta.

4.2 Enkelt att konfigurera, ganska enkelt att använda, du behöver inte vara root:

Tack till Leonard Jean-Marc för tipset.

Lägg in en rad som denna i din .bashrc (eller .tcshrc eller .cshrc):

alias btar='tar --use-compress-program /usr/local/bin/bzip2 '

Also easy to use, but needs root access.

4.3 Också enkelt att använda, men kräver root-rättigheter:

Lägg till patchen nedan till gnu tar 1.12 enligt följande metod:

cd tar-1.12/src; patch < /sökväg/till/tar.diff
Kompilera och installera det och sedan är det bara att köra. Se efter så att både tar och bzip2 finns i din $PATH genom "which tar" och "which bzip2". För att använda det nya tar, skriv bara
 tar xyf foo.tar.bz2
för att packa upp filen.

Att skapa ett nytt arkiv går till på ett liknande sätt:

 tar cyf foo.tar.bz2 fil1 fil2 fil3...katalog1 katalog2...

Här är patchen:

*** tar.c       Thu Jun 11 00:09:23 1998
--- tar.c.new   Thu Jun 11 00:14:24 1998
***************
*** 196,201 ****
--- 196,203 ----
    {"block-number", no_argument, NULL, 'R'},
    {"block-size", required_argument, NULL, OBSOLETE_BLOCKING_FACTOR},
    {"blocking-factor", required_argument, NULL, 'b'},
+   {"bzip2", required_argument, NULL, 'y'},
+   {"bunzip2", required_argument, NULL, 'y'},
    {"catenate", no_argument, NULL, 'A'},
    {"checkpoint", no_argument, _option, 1},
    {"compare", no_argument, NULL, 'd'},
***************
*** 372,377 ****
--- 374,380 ----
                PATTERN                at list/extract time, a globbing PATTERN\n\
    -o, --old-archive, --portability   write a V7 format archive\n\
        --posix                        write a POSIX conformant archive\n\
+   -y, --bzip2, --bunzip2             filter the archive through bzip2\n\
    -z, --gzip, --ungzip               filter the archive through gzip\n\
    -Z, --compress, --uncompress       filter the archive through compress\n\
        --use-compress-program=PROG    filter through PROG (must accept -d)\n"),
***************
*** 448,454 ****
     Y  per-block gzip compression */
  
  #define OPTION_STRING \
!   "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxz"
  
  static void
  set_subcommand_option (enum subcommand subcommand)
--- 451,457 ----
     Y  per-block gzip compression */
  
  #define OPTION_STRING \
!   "-01234567ABC:F:GK:L:MN:OPRST:UV:WX:Zb:cdf:g:hiklmoprstuvwxyz"
  
  static void
  set_subcommand_option (enum subcommand subcommand)
***************
*** 805,810 ****
--- 808,817 ----
        case 'X':
        exclude_option = 1;
        add_exclude_file (optarg);
+       break;
+ 
+       case 'y':
+       set_use_compress_program_option ("bzip2");
        break;
  
        case 'z':


Nästa Föregående Innehållsförteckning