A seguir apresentamos três maneiras de usar o bzip2 com o tar.
Este método não requer configuração. Para descompactar um arquivo gerado pelo bzip2 e o tar, chamado foo.tar.bz2, presente no diretório atual, deve-se executar o comando:
/path/to/bzip2 -cd foo.tar.bz2 | tar xf -
Isto funciona, mas pode ser intediante digitá-lo freqüentemente. Pode-se usar então os esquemas descritos a seguir.
Agradecimentos a Leonard Jean-Marc pela dica. Agradecimentos também para Alessandro Rubini pelas dicas de diferenciação entre o bash e outros interpretadores de comando csh.
No .bashrc, deve-se adicionar a seguinte linha:
alias btar='tar --use-compress-program /usr/local/bin/bzip2 '
No .tcshrc ou .cshrc, a linha análoga tem o seguinte formato:
alias btar 'tar --use-compress-program /usr/local/bin/bzip2'
Deve-se aplicar a atualização a seguir no gnu tar 1.12:
cd tar-1.12/src; patch < /path/to/tar.diff
A seguir ele deve ser compilado e instalado. Certifique-se que tanto o tar como bzip2 estão no $PATH através dos comandos "which tar" e "which bzip2."
Para usar-se o novo comando tar, basta executar o seguinte:
tar xyf foo.tar.bz2
para descompactar o arquivo.
Para criar um novo arquivo compactado deve-se executar:
tar cyf foo.tar.bz2 arquivo1 arquivo2 arquivo3...diretório1 diretório2...
Aqui está a atualização:
*** 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':