делиться
Оригинальный автор(ы) | Джеймс Гослинг |
---|---|
Разработчик(и) | Различные с открытым исходным кодом и коммерческие разработчики разработчики |
Операционная система | Unix , Unix-подобные , VMS , Windows |
Тип | Команда |
Расширение имени файла | .шар |
---|---|
Тип формата | Формат архива , шелл-скрипт |
Открытый формат ? | Да [1] |
В shar операционной системе Unix ( от «архив оболочки») — это формат архива , созданный с помощью Unix. shar
полезность. Файл shar — это тип самораспаковывающегося архива , поскольку это действительный сценарий оболочки , и его выполнение приведет к воссозданию файлов. Для извлечения файлов только стандартная оболочка Unix Bourne sh обычно требуется .
Файлы shar также иногда называют «шархивами» (из «архива /bin/sh»). [2]
Обратите внимание, что команда share не указана в Единой спецификации Unix , поэтому формально она не является компонентом Unix, а является устаревшей утилитой.
Подробности
[ редактировать ]Хотя формат shar имеет то преимущество, что представляет собой обычный текст , он представляет риск из-за того, что является исполняемым ; [3] по этой причине более старый и более общий формат файла tar обычно предпочтительнее даже для передачи текстовых файлов. GNU предоставляет собственную версию shar в коллекции GNU Sharutils .
программы unshar написаны для других операционных систем, но не всегда надежны; Файлы shar представляют собой сценарии оболочки и теоретически могут делать все, что может делать сценарий оболочки (включая использование несовместимых функций расширенных или похожих оболочек), что ограничивает их полезность за пределами мира Unix.
Недостаток самораспаковывающихся сценариев оболочки (любых, а не только общих) заключается в том, что они могут полагаться на конкретную реализацию программ; архивы оболочки, созданные с помощью более старых версий makeself , [4] например, оригинальный установщик Unreal Tournament для Linux не запускается на bash 3.x из-за изменения в том, как отсутствующие аргументы trap
встроенные команды обрабатываются.
История и варианты
[ редактировать ]Джеймсу Гослингу приписывают написание первой версии утилиты share в 1982 году. [1] : §1 а также написал ранний пример (предположительно 1978-79) этой концепции в виде этого простого сценария оболочки: [5] [6] [7]
# shar -- Shell archiverAR=$1shiftfor i do echo a - $i echo "echo x - $i" >>$AR echo "cat >$i <<'!Funky!Stuff!'" >>$AR cat $i >>$AR echo "!Funky!Stuff!" >>$ARdone
следующие варианты шара : Известны [8]
- shar 1.x (1982) Гослинга. являющийся общественным достоянием Сценарий оболочки, .
- Текущий FreeBSD общий ресурс . Лицензия BSD из 3 пунктов , сценарий оболочки. Добавляет md5sum.
- shar2 или xshar (1988) Уильяма Дэвидсена. Общественное достояние, на C. программа
- shar3 (1989) Уоррена Такера.
- шар 3,49 (1990) Ричарда Х. Гумпертца. Добавляет поддержку uuencode .
- shar3 (1989) Уоррена Такера.
- cshar (1984) Майкла А. Томпсона и Марка Смита, теперь проигранный битроту. Программа С.
- cshar (1988) Рича Зальца , программа на языке C. Вероятно повлияло шар 3.49 .
- ccshar (1996), модификация для вывода вместо этого сценария csh . Редко используется в Usenet.
ГНУ shar
доступен как отдельный пакет для Microsoft Windows как часть UnxUtils коллекции , состоящей из собственных Win32- портов распространенных GNU Unix-подобных утилит. [9]
Похожие форматы
[ редактировать ]Версия той же концепции, но для операционной системы VMS , была написана в 1987 году Майклом Беднареком из Мельбурнского института прикладных экономических и социальных исследований в виде сценария DCL , VMS_SHAR.COM. [10] Позже это было поддержано и расширено Джеймсом А. Греем из Xerox . [11] и Энди Харпер из Королевского колледжа Лондона . [12] [13]
makeself (2001–) — это сценарий оболочки, генерирующий самораспаковывающиеся архивы ( *.run
, application/x-makeself
), используя тот же метод заголовка сценария оболочки. Использование tar исключает возможность прямого использования makeself в виде простого текста, но лучшее сжатие и другие функциональные возможности сделали его более популярным в 21 веке среди поставщиков программного обеспечения, стремящихся упаковывать программное обеспечение Linux. [14]
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б «Утилиты GNU 'share'» . gnu.org . Фонд свободного программного обеспечения . Проверено 8 декабря 2019 г.
- ^ "шархиве" . ftp.informatik.rwth-aachen.de . Проверено 02 января 2024 г.
- ^ Яблоко (6 июня 1993 г.). «Страница руководства Mac OS X shar(1)» . Яблоко. Архивировано из оригинала 07.11.2009 . Проверено 7 ноября 2009 г.
- ^ «Исправить команду «ловушка»» . Svn.icculus.org. 20.11.2000. Архивировано из оригинала 14 июля 2012 г. Проверено 30 августа 2011 г.
- ^ уу-бив! Джим (2 апреля 1983 г.). «Re: программа для разделения файлов дистрибутива xlisp» . Группа новостей : net.sources . идентификатор сообщения:bnews.uw-beave.451 . Проверено 27 марта 2017 г.
- ^ «Шар: взрыв из прошлого» . Джеймс Гослинг: на Яванской дороге . Архивировано из оригинала 27 марта 2017 года . Проверено 26 марта 2017 г.
- ^ Почти идентичный сценарий, «пакет», описан в «Среда программирования UNIX», Керниган и Пайк, 1984, на странице 97.
- ^ Дики, Томас Э. «Комментарии к Shar/Utils» . invisible-island.net .
- ^ Собственные порты Win32 некоторых утилит GNU.
- ^ Майкл Беднарек (9 июня 1987 г.). "шар (вроде) для VMS" . Группа новостей : comp.os.vms . Usenet: [электронная почта защищена] . Проверено 9 февраля 2008 г.
- ^ Джим Грей (8 мая 1988 г.). «VMS_SHARE V6.0» . Группа новостей : comp.os.vms . Usenet: 880508-073131-5929@Xerox . Проверено 9 февраля 2008 г.
- ^ Энди Харпер (6 июля 1989 г.). «VMS_SHARE версия 7» . Группа новостей : comp.os.vms . Usenet: [электронная почта защищена] . Проверено 9 февраля 2008 г.
- ^ Энди Харпер (5 июля 1995 г.). «Анонсируем VMS_SHARE 8.5» . Группа новостей : vmsnet.sources.d . Usenet: [электронная почта защищена] . Проверено 9 февраля 2008 г.
- ^ «makeself — Создание самораспаковывающихся архивов в Unix» .
Внешние ссылки
[ редактировать ]- Linux по основным командам Руководство –
- Информация о шар-файлах (Карнеги-Меллон)
- Шарутилы GNU