On-Line Библиотека www.XServer.ru - учебники, книги, статьи, документация, нормативная литература.
       Главная         В избранное         Контакты        Карта сайта   
    Навигация XServer.ru








 

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 (mailto:leonard@sct1.is.belgacom.be) за совет. Благодарю также Alessandro Rubini (mailto:rubini@morgana.systemy.it) за различия 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 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':

Назад       Содержание       Вперёд