Sont listés ci-dessous trois méthodes d'utilisation de bzip2 avec tar, soit:
Cette méthode ne nécessite pas de configurer quoi que ce soit. Pour décompresser une archive foo.tar.bz2 en bzip2 dans le répertoire courant, tapez
/chemin/vers/bzip2 -cd foo.tar.bz2 | tar xf -
Ceci fonctionne, mais peut être ennuyeux à taper souvent.
Merci à Leonard Jean-Marc pour ce truc. Merci aussi à Alessandro Rubini pour la différenciation entre bash et csh.
Dans votre .bashrc, vous pouvez mettre une ligne comme celle-ci:
alias btar='tar --use-compress-program /usr/local/bin/bzip2'
Dans votre .tcshrc, ou .cshrc, la ligne analogue ressemble à ceci:
alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
Appliquez la correction suivante au gnu tar 1.12 comme suit:
cd tar-1.12/src; patch < /chemin/vers/tar.diff
compilez le, installez le, et tout sera impeccable. Vérifiez que tar et
bzip2 soient tous deux dans votre $PATH en exécutant "which tar" et "which
bzip2". Pour utiliser le nouveau tar, lancez simplement
tar xyf foo.tar.bz2
pour décompresser le fichier.
Pour créer une nouvelle archive, le fonctionnement est similaire:
tar cyf foo.tar.bz2 fichier1 fichier2 fichier3...répertoire1 répertoire2...
Voici la correction:
*** 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':