Наши партнеры








Книги по Linux (с отзывами читателей)

Библиотека сайта rus-linux.net

Next Previous Contents

4. Использование bzip2 с tar

Ниже перечислены три способа использовать bzip2 с tar, а именно

4.1. Самый простой в настройке

Этот метод не требует никакой установки вообще. Чтобы растарить в текущий каталог сжатый bzip2'ом архив tar foo.tar.bz2, введите


       /path/to/bzip2 -cd foo.tar.bz2 | tar xf -

Этот способ нормально работает, но может надоесть при частой работе с архивами.

4.2. Простая установка, довольно легкая в использовании, не нужно иметь привилегии root

Благодарю Leonard Jean-marc за совет. Благодарю также Alessandro Rubini за различия bash от сsh. В вашем .bashrc, Вы можете поместить строку типа:


       alias btar='tar - use-compress-program usr/local/bin/bzip2'

В вашем .tcshrc, или .cshrc, аналогичная строка:


       alias btar 'tar - use-compress-program /usr/local/bin/bzip2'

4.3. Также легко в использовании, но требуется уровень доступа root.

Примените заплатку, приведенную ниже к gnu tar 1.12 следующим образом:

       cd tar-1.12/src; patch < /path/to/tar.diff

Скомпилируйте его, установите, и вы готовы, чтобы следовать дальше. Удостоверьтесь что и tar, и bzip2 находится в вашем $PATH, выполнив "which tar" и "which bzip2". Для использования нового tar, выполните


        tar xyf foo.tar.bz2

чтобы декомпрессировать файл. Чтобы сделать новый архив:


        tar cyf foo.tar.bz2 file1 file2 file3 ... directory1 directory2 ...

Это заплатка:


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


Next Previous Contents