Evo tri načina korištenja bzip2 uz tar, to jest:
Ova metoda ne zahtijeva nikakvo petljanje. Za dearhiviranje bzip2-ane tar
arhive, foo.tar.bz2
, u trenutnom direktoriju, napišite
/staza/do/bzip2 -cd foo.tar.bz2 | tar xf -
To radi, ali toliko tipkati često može biti mučno.
Hvala Leonardu Jean-Marcu, leonard@sct1.is.belgacom.be, što mi je ovo spomenuo. Također hvala Alessandru Rubiniju, rubini@morgana.systemy.it, za razlike između basha i csha.
U svoj .bashrc
možete staviti ovakav red:
alias btar='tar --use-compress-program /usr/local/bin/bzip2 '
U .tcshrc
ili .cshrc
odgovarajući red izgleda ovako:
alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
Slijedeću zakrpu ovako primjenite na GNU tar 1.12:
cd tar-1.12/src; patch < /staza/do/tar.diff
Zatim ga kompajlirajte, instalirajte i to je to. Provjerite da li su i
tar i bzip2 u $PATH pomoću which tar
i which
bzip2
. Dearhivirati datoteke sada možete jednostavnim
tar xyf foo.tar.bz2
Stvaranje nove arhive je slično:
tar cyf foo.tar.bz2 datoteka1 datoteka2... direktorij1 direktorij2...
Evo zakrpe:
*** 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, &checkpoint_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':