Формат файлов Unix: Shar, Tar и самораспаковывающиеся архивы.
Shar
Формат файлов Unix: shar – архивный формат для передачи файлов. Устаревший, небезопасный из-за возможности исполнения. Альтернатива – tar. GNU Sharutils.
Сравнивайте с английским: нажмите на абзац — оригинал откроется в окне. Кнопка EN под абзацем показывает его прямо в тексте.
Содержание
Введение
Формат файла Unix — это формат файла.
Unix file format
the file format
Обратите внимание, что команда shar не определена в Единой спецификации Unix, поэтому формально она не является частью Unix, а представляет собой устаревшую утилиту.
Note that the shar command is not specified by the Single Unix Specification, so it is not formally a component of Unix, but a legacy utility.
Подробности
В то время как формат shar имеет преимущество в виде простого текста, он представляет опасность из-за своей исполняемости; по этой причине более старый и универсальный формат tar обычно предпочтительнее даже для передачи текстовых файлов. GNU предоставляет свою собственную версию shar в составе пакета GNU Sharutils. Программы unshar были разработаны для других операционных систем, но не всегда работают надёжно; файлы shar являются скриптами оболочки и теоретически могут выполнять любые действия, доступные скриптам оболочки (включая использование несовместимых функций расширенных или совместимых оболочек), что ограничивает их полезность вне среды Unix. Недостатком самораспаковывающихся скриптов оболочки (любого типа, не только shar) является то, что они могут зависеть от конкретной реализации программ; например, архивы оболочки, созданные старыми версиями makeself, такие как оригинальный установщик Unreal Tournament для Linux, не запускаются в bash 3.x из-за изменения в обработке отсутствующих аргументов встроенной команды `trap`.
While the shar format has the advantage of being plain text, it poses a risk due to being executable; for this reason the older and more general tar file format is usually preferred even for transferring text files. GNU provides its own version of shar in the GNU Sharutils collection. unshar programs have been written for other operating systems but are not always reliable; shar files are shell scripts and can theoretically do anything that a shell script can do (including using incompatible features of enhanced or workalike shells), limiting their utility outside the Unix world. The drawback of self extracting shell scripts (any kind, not just shar) is that they may rely on a particular implementation of programs; shell archives created with older versions of makeself, for example, the original Unreal Tournament for Linux installer, fails to run on bash 3. x due to a change in how missing arguments to trap built in command are handled.
Подобные форматы
Версия той же концепции, но для операционной системы VMS, была написана в 1987 году Майклом Беднареком из Мельбурнского института прикладных экономических и социальных исследований в виде скрипта DCL, VMS SHAR.COM. Позже поддержку и расширение этого проекта осуществляли Джеймс А. Грей из Xerox и Энди Харпер из Королевского колледжа Лондона. makeself (2001–) – это скрипт оболочки, который генерирует самораспаковывающиеся архивы tar (, ) с использованием той же техники заголовка скрипта оболочки. Использование tar исключает возможность прямого использования makeself в виде обычного текста, но улучшенное сжатие и другие функции сделали его более популярным в 21 веке среди поставщиков программного обеспечения, стремящихся к упаковке программного обеспечения Linux.
A version of the same concept, but for the VMS operating system, was written in 1987 by Michael Bednarek from The Melbourne Institute of Applied Economic and Social Research as a DCL script, VMS SHAR. COM. This was later maintained and extended by James A. Gray from Xerox, and Andy Harper from King's College London. makeself (2001–) is a shell script that generates self extracting tarballs (, ) using the same shell script header technique. Using tar precludes makeself from being used in plain text directly, but the better compression and other functionalities has made it more popular in the 21st century among software vendors seeking to package Linux software.