LINUX.ORG.RU

Редактирование файлов в архиве

 


0

1

Доброго времени суток.
Подскажите, можно ли как-то (и как?) редактировать текстовые файлы, которые уже запакованы в архив? Попробовал через mc - «невозможно сохранить файл». tar, tar.gz
ps: архив на сервере, так что нужно консольное решение.

нужно консольное решение

А с гуем что ли в самом архиве меняет? В темп же распаковывает/запаковывает. И ты так же в консольке.

amorpher ★★★★★ ()

«голый» tar без сжатия можно «редактировать». Вернее, дописывать. tar изначально - это Tape ARchiver; архиватор для ленточных накопителей. То есть, контейнер последовательного доступа. Если распаковать gunzip'ом, то mc начинает копировать, потому что фактически просто дописывается информация в конец файла (даже если типа файл перезаписывается, то всё равно останется его первоначальная копия и последний вариант). Сжатие (gz) делает невозможным такую перезапись, потому что в отличие от zip/rar и иже с ними контейнер и сжатие не интегрированы вместе, а разнесены по разным фукнциям. Соответственно, чтобы изменить файл в сжатом tar-архиве, нужно будет сначала распаковать file.tar.gz в file.tar, потом внести изменения, потом запаковать назад. Для mc это слишком «интеллектуально»: во первых, можно замучаться на порции из нескольких файлов: на каждый будет распаковка-изменения-запаковка (mc не умеет работать с «пачками» заданий, только по одному); во-вторых, неизвестно, хватит ли места для распаковки архива.

Сомневаюсь, что возможно найти программы, работающие «на лету» со сжатыми контейнерами. Наверное, проще будет распаковать сжатый архив в tar (в mc по F2 есть соответствующий пункт меню) и потом в mc внести изменения. Потом вручную сжать опять (через F2 в mc же).

Slavaz ★★★★★ ()
Последнее исправление: Slavaz (всего исправлений: 3)

vi / emacs умеют (хотя есть смутные воспоминания, что где-то сталкивался с косяками)

anonymous ()

ТС потрудись объяснить нафиг тебе это нужно?

MikeDM ★★★★★ ()
Ответ на: комментарий от anonymous

работай с файлами «напрямую»

Желательно еще иметь гигабайт эдак 16 оперативы, чтобы "напрямую" разворачивать архивы в shm.

Anon ()
Ответ на: комментарий от anonymous

Редактирование файлов в архиве

монтируй tar через fuse

какой именно модуль, любопытно было бы узнать?

anonymous ()
Ответ на: комментарий от anonymous
Description-en: mounts an archive for access as a file system
 archivemount is a FUSE based file system for Unix variants, including Linux.
 Its purpose is to mount archives to a mount point where it can be read from
 or written to as with any other file system.
 This makes accessing the contents of the archive, which maybe compressed,
 transparent to other programs, without decompressing them.
 The archive formats that archivemount supports are:
  *   old-style tar archives,
  .
  *   most variants of the POSIX “ustar” format,
  .
  *   the POSIX “pax interchange” format,
  .
  *   GNU-format tar archives,
  .
  *   most common cpio archive formats,
  .
  *   ISO9660 CD images (with or without RockRidge extensions),
  .
  *   Zip archives.
  .
  *   two different variants of shar archives.
  .
 archivemount is FUSE (Filesystem in USErspace).
Homepage: http://www.cybernoia.de/software/archivemount/
anonymous ()
Ответ на: комментарий от anonymous

Спасибо может пригодится, пока avfs по-старинке. Странно, что .tar.xz - монтирует, все равно записывать не умеет.

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.