stringtranslate.com

compartir

En el sistema operativo Unix , shar (de "archivo shell") es un formato de archivo creado con la utilidad Unix . Un archivo shar es un tipo de archivo autoextraíble , porque es un script de shell válido y al ejecutarlo se recrearán los archivos. Para extraer los archivos, normalmente sólo se requiere el shell sh estándar de Unix Bourne .shar

Los archivos shar a veces también se denominan "sharchives" (de "/bin/sh archive"). [2]

Tenga en cuenta que el comando shar no está especificado en la Especificación única de Unix , por lo que formalmente no es un componente de Unix, sino una utilidad heredada.

Detalles

Si bien el formato shar tiene la ventaja de ser texto plano , presenta un riesgo por ser ejecutable ; [3] por esta razón, el formato de archivo tar más antiguo y general suele ser el preferido incluso para transferir archivos de texto. GNU proporciona su propia versión de shar en la colección GNU Sharutils .

los programas para compartir se han escrito para otros sistemas operativos, pero no siempre son confiables; Los archivos shar son scripts de shell y, en teoría, pueden hacer cualquier cosa que un script de shell pueda hacer (incluido el uso de funciones incompatibles de shells mejorados o similares), lo que limita su utilidad fuera del mundo Unix.

El inconveniente de los scripts de shell autoextraíbles (de cualquier tipo, no sólo shar) es que pueden depender de una implementación particular de programas; Los archivos de shell creados con versiones anteriores de makeself , [4] por ejemplo, el instalador original de Unreal Tournament para Linux, no se ejecutan en bash 3.x debido a un cambio en la forma en que se manejan los argumentos faltantes en trap el comando integrado .

Historia y variantes

A James Gosling se le atribuye haber escrito la primera versión de la utilidad shar en 1982, [1] : §1  y también escribió un ejemplo temprano (supuestamente 1978-79) del concepto en forma de este sencillo script de shell: [5] [ 6] [7]

# shar -- Archivador de Shell AR = cambio de $ 1 para hago echo a - $i echo "echo x - $i " >> $AR echo "cat > $i <<'!Funky!Stuff!'" >> $AR cat $i >> $AR echo "!¡Funky!¡Cosas!" >> $AR hecho             

Se conocen las siguientes variantes de shar : [8]

GNU sharestá disponible como un paquete separado para Microsoft Windows como parte de la colección UnxUtils de puertos nativos Win32 de utilidades comunes similares a GNU Unix. [9]

Formatos similares

Michael Bednarek del Instituto de Investigación Económica y Social Aplicada de Melbourne escribió en 1987 una versión del mismo concepto, pero para el sistema operativo VMS , como un script DCL , VMS_SHAR.COM. [10] Esto fue posteriormente mantenido y ampliado por James A. Gray de Xerox , [11] y Andy Harper del King's College de Londres . [12] [13]

makeself (2001–) es un script de shell que genera archivos comprimidos autoextraíbles ( *.run, application/x-makeself) utilizando la misma técnica de encabezado del script de shell. El uso de tar impide que se utilice directamente en texto plano, pero la mejor compresión y otras funcionalidades lo han hecho más popular en el siglo XXI entre los proveedores de software que buscan empaquetar software Linux. [14]

Ver también

Referencias

  1. ^ ab "Utilidades GNU 'shar'". gnu.org . Fundación de Software Libre . Consultado el 8 de diciembre de 2019 .
  2. ^ "sharchivo". ftp.informatik.rwth-aachen.de . Consultado el 2 de enero de 2024 .
  3. ^ Manzana (6 de junio de 1993). "Página de manual de Mac OS X shar(1)". Manzana. Archivado desde el original el 7 de noviembre de 2009 . Consultado el 7 de noviembre de 2009 .
  4. ^ Corrección del comando "hacerse" trampa ". Svn.icculus.org. 2000-11-20. Archivado desde el original el 14 de julio de 2012 . Consultado el 30 de agosto de 2011 .
  5. ^ uw-beave! Jim (2 de abril de 1983). "Re: programa para separar archivos de distribución xlisp". Grupo de noticias : net.sources. id-mensaje:bnews.uw-beave.451 . Consultado el 27 de marzo de 2017 .
  6. ^ "shar: una explosión del pasado". James Gosling: en la carretera de Java . Archivado desde el original el 27 de marzo de 2017 . Consultado el 26 de marzo de 2017 .
  7. ^ Un script casi idéntico, 'paquete', se describe en "El entorno de programación UNIX", Kernighan y Pike, 1984, en la página 97
  8. ^ Dickey, Thomas E. "Comentarios sobre Shar/Utils". isla-invisible.net .
  9. ^ Puertos nativos Win32 de algunas utilidades GNU
  10. ^ Michael Bednarek (9 de junio de 1987). "compartir (más o menos) para VMS". Grupo de noticias : comp.os.vms. Usenet:  [email protected] . Consultado el 9 de febrero de 2008 .
  11. ^ Jim Gray (8 de mayo de 1988). "VMS_SHARE V6.0". Grupo de noticias : comp.os.vms. Usenet:  880508-073131-5929@Xerox . Consultado el 9 de febrero de 2008 .
  12. ^ Andy Harper (6 de julio de 1989). "VMS_SHARE versión 7". Grupo de noticias : comp.os.vms. Usenet:  [email protected] . Consultado el 9 de febrero de 2008 .
  13. ^ Andy Harper (5 de julio de 1995). "Anuncio de VMS_SHARE 8.5". Grupo de noticias : vmsnet.sources.d. Usenet:  5 de julio de [email protected] . Consultado el 9 de febrero de 2008 .
  14. ^ "makeself: crea archivos autoextraíbles en Unix".

enlaces externos