Básicamente, hay dos formas de combinar bzip2
con tar
:
Este método no necesita configurar nada. Para desempaquetar un fichero
.tar.gz
, digamos algo.tar.bz, en el directorio actual, debemos hacer
/directorio/de/bzip2 -cd algo.tar.bz2 | tar xf -
Este método funciona, pero puede ser un poco pesado teclearlo todo cada vez que se necesite descomprimir algo.
Aplique el siguiente parche a gnu tar 1.12, compílelo, instálelo, y se
acabó. Asegúrese de que tanto tar
como bzip2
están en su
$PATH
con
which tar
which bzip2
Para utilizarlo, sólo tiene que hacer
tar xyf algo.tar.bz2
para descomprimir el fichero.
Para hacer un nuevo fichero comprimido hay que hacer algo parecido:
tar cyf algo.tar.bz2 fichero1 fichero2 fichero3...directorio1 directorio2...
Y aquí está el parche :)
*** tar.c.orig Sat Apr 26 05:09:49 1997
--- tar.c Feb 2 00:50:47 1998
***************
*** 16,21 ****
--- 16,24 ----
with this program; if not, write to the Free Software Foundation, Inc.,
59 Place - Suite 330, Boston, MA 02111-1307, USA. */
+ /* Feb 2 98: patched by David Fetter to use bzip2 as a
+ filter (option -y) */
+
#include "system.h"
#include <getopt.h>
***************
*** 196,201 ****
--- 199,206 ----
{"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 ****
--- 377,383 ----
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)
--- 454,460 ----
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 ****
--- 811,820 ----
case 'X':
exclude_option = 1;
add_exclude_file (optarg);
+ break;
+
+ case 'y':
+ set_use_compress_program_option ("bzip2");
break;
case 'z':