Исходный автор (-ы) | Джеймс Гослинг |
---|---|
Разработчик (-ы) | Разное с открытым исходным кодом и коммерческие разработчики |
Операционная система | Unix, Unix-like, VMS, Windows |
Тип | Команда |
Расширение имени файла | .shar |
---|---|
Тип формата | Формат архива, сценарий оболочки |
Открытый формат ? | Да |
В операционной системе Unix , shar (сокращение от shell-архива) - это формат архива, созданный с помощью Unix шар
утилита. Shar-файл - это тип самораспаковывающегося архива, потому что это допустимый сценарий оболочки , и его выполнение приведет к воссозданию файлов. Для извлечения файлов обычно требуется только стандартная Unix оболочка Bourne sh.
Обратите внимание, что команда shar не указана в Single Unix Specification, поэтому формально это не компонент Unix, а устаревшая утилита.
Хотя формат Shar имеет преимущество того, что это обычный текст, он представляет собой риск из-за того, что исполняемый ; по этой причине более старый и более общий формат tar-файла обычно предпочтительнее даже для передачи текстовых файлов. GNU предоставляет свою собственную версию shar в коллекции GNU Sharutils.
программы unshar были написаны для других операционных систем, но не всегда надежны; Файлы shar представляют собой сценарии оболочки и теоретически могут делать все, что может сделать сценарий оболочки (включая использование несовместимых функций расширенных или рабочих оболочек), ограничивая их полезность за пределами мира Unix.
Недостатком самораспаковывающихся сценариев оболочки (любого типа, не только общих) является то, что они могут полагаться на конкретную реализацию программ; архивы оболочки, созданные с помощью более старых версий makeself, например оригинального Unreal Tournament для установщика Linux, не запускаются на bash 3.x из-за изменения способа пропуска аргументов в trap
встроенная команда обрабатывается.
Джеймсу Гослингу приписывают создание первой версии утилиты shar, а также он написал ранний пример концепции в виде этого простого сценария оболочки:
# shar - Архиватор оболочки AR = $ 1 сдвиг для я действительно эхо a - $ i echo "echo x - $ i">>$ AR echo "cat>$ i <<'!Funky!Stuff!'">>$ AR cat $ i>>$ AR echo "! Funky! Stuff!">>$ AR done
Версия той же концепции, но для операционной системы VMS, была написана в 1987 году Майклом Беднареком из Мельбурнского института прикладных экономических и социальных исследований в качестве сценария DCL, VMS_SHAR.COM. Позднее он был поддержан и расширен Джеймсом А. Греем из Xerox и Энди Харпером из Королевский колледж Лондона.
Команда доступна как отдельный пакет для Microsoft Windows как часть UnxUtils коллекции native Win32 порты общих GNU Unix-подобных утилит.
shar (1)
– Linux Команды пользователя Руководство