LINUX.ORG.RU

Как открыть например, изображение, внутри архива с помощью 7zip, не разархивируя его на жесткий диск?

 ,


0

3

Я знаю, что этой функцией обладают все архиваторы с графическим интерфейсом, которыми я пользовался. Но как через командную строку это сделать?



Последнее исправление: kramh (всего исправлений: 1)

7z e -so archive.7z image.jpg | display -

Здесь предполагается, что в архиве archive.7z есть файл image.jpg, а в системе — команды 7z и display из ImageMagick.

dexpl ★★★★★
()

Я знаю, что этой функцией обладают все архиваторы с графическим интерфейсом, которыми я пользовался.

Просто они данную процедуру автоматизируют, распаковывая архив во временную директорию на диске. Что бы было в противном случае, если бы нужно было открыть архив по размеру превосходящий оперативную память?

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

nano

Только не nano, а, например, less или cat — nano, как и большинство редакторов, не работает так, как ожидается, если stdin — не терминал. И вообще, отредактировать файл в архиве без распаковки на диск не получится.

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

Конкректно с -so вывод идёт в stdout, так что не могу сказать, выводит ли он содержимое сразу из оперативной памяти или всё равно сбрасывает файло на диск. В первую очередь я описывал графические утилиты.

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

vim можно подредактировать файл

Только результат редактирования сам собой обратно в архив не запакуется.

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

7z e -so ... | sed ... | 7z u -si ...

В результате получится архив с двумя вариантами sed'нутого файла — старой и новой — под одним именем. Только что проверил на

7-Zip [64] 9.20  Copyright (c) 1999-2010 Igor Pavlov  2010-11-18
p7zip Version 9.20 (locale=ru_RU.utf8,Utf16=on,HugeFiles=on,2 CPUs)

В принципе можно попробовать с опциями обновления поколдовать, но лень.

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

Есть случаи, когда свободной оперативной памяти больше, чем места на разделе с /tmp.

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