Введение

Формат файла Unix — это формат файла.

Обратите внимание, что команда shar не определена в Единой спецификации Unix, поэтому формально она не является частью Unix, а представляет собой устаревшую утилиту.

Подробности

В то время как формат shar имеет преимущество в виде простого текста, он представляет опасность из-за своей исполняемости; по этой причине более старый и универсальный формат tar обычно предпочтительнее даже для передачи текстовых файлов. GNU предоставляет свою собственную версию shar в составе пакета GNU Sharutils. Программы unshar были разработаны для других операционных систем, но не всегда работают надёжно; файлы shar являются скриптами оболочки и теоретически могут выполнять любые действия, доступные скриптам оболочки (включая использование несовместимых функций расширенных или совместимых оболочек), что ограничивает их полезность вне среды Unix. Недостатком самораспаковывающихся скриптов оболочки (любого типа, не только shar) является то, что они могут зависеть от конкретной реализации программ; например, архивы оболочки, созданные старыми версиями makeself, такие как оригинальный установщик Unreal Tournament для Linux, не запускаются в bash 3.x из-за изменения в обработке отсутствующих аргументов встроенной команды `trap`.

Подобные форматы

Версия той же концепции, но для операционной системы VMS, была написана в 1987 году Майклом Беднареком из Мельбурнского института прикладных экономических и социальных исследований в виде скрипта DCL, VMS SHAR.COM. Позже поддержку и расширение этого проекта осуществляли Джеймс А. Грей из Xerox и Энди Харпер из Королевского колледжа Лондона. makeself (2001–) – это скрипт оболочки, который генерирует самораспаковывающиеся архивы tar (, ) с использованием той же техники заголовка скрипта оболочки. Использование tar исключает возможность прямого использования makeself в виде обычного текста, но улучшенное сжатие и другие функции сделали его более популярным в 21 веке среди поставщиков программного обеспечения, стремящихся к упаковке программного обеспечения Linux.