Her har du tre måter å gjøre det på:
Denne metoden krever ikke noe oppsett i det hele tatt. For å pakke ut det bzip2-ede tar-arkivet foo.tar.bz i den aktuelle katalogen skriver du
/banen/til/bzip2 -cd foo.tar.bz2 | tar xf -
Dette fungerer, men det kan være slitsomt å gjøre dette ofte.
Takk til Leonard Jean-Marc for tipset. Takk til Alessandro Rubini også for å ha skilt bash fra csh-ene.
Skriv en linje som dette i din .bashrc-fil:
alias btar='tar --use-compress-program /usr/local/bin/bzip2 '
I din .tcshrc, eller .cshrc, vil det tilsvarende se slik ut:
alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
Legg til patchen nedenfor til gnu tar 1.12 på følgende måte:
cd tar-1.12/src; patch < /path/to/tar.diff
Kompiler og installer det, nå er det bare å kjøre. Forsikre deg om at
både tar og bzip2 er i din $PATH-setning som på "which tar" og "which
bzip2." For å bruke den nye tar, skriver du bare:
tar xyf
foo.tar.bz2
for å pakke ut filen.
Du gjør noe lignende for å lage et nytt arkiv:
tar cyf foo.tar.bz2 file file file...katalog1 katalog2...
Her er 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':