(M)  s i s t e m a   o p e r a c i o n a l   m a g n u x   l i n u x ~/ · documentação · suporte · sobre

  Página seguinte Página anterior Índice

44. Usando o bzip2 com o tar

A seguir apresentamos três maneiras de usar o bzip2 com o tar.

44.1 Mais fácil de configurar:

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.

44.2 Fácil de configurar, mais fácil de usar, sem necessidade de privilégios de superusuário:

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'

44.3 Também fácil de usar, mas necessita de poderes de superusuário.

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': 

Página seguinte Página anterior Índice