Vai al contenuto

shar (Unix)

Da Wikipedia, l'enciclopedia libera.

shar (un'abbreviazione di shell archive, "archivio a conchiglia"), nel sistema operativo Unix, è un formato archivio.

Un file shar è uno shell script, la cui esecuzione ricreerà i file. Si tratta di un tipo di file archivio autoestraibile. Può essere creato con la utility Unix shar. Per estrarre i file, di solito è richiesta solo la bourne shell standard Unix sh.

Sebbene il formato shar abbia il vantaggio di essere plain text, ossia "testo semplice" in formato ASCII, pone un rischio legato al fatto di essere un file eseguibile;[1][2] per questa ragione di solito si preferisce il più vecchio e generico formato di file tar anche per trasferire i file di testo. La GNU fornisce la propria versione di shar nella collezione GNU Sharutils.

Sono stati scritti programmi unshar per altri sistemi operativi, ma non sono sempre affidabili; i file shar sono shell scripts e possono fare teoricamente qualsiasi cosa che può fare uno shell script (compreso usare caratteristiche incompatibili di shell potenziate o dal funzionamento simile), limitando la loro utilità al di fuori del mondo Unix.

Lo svantaggio degli shell scripts autoestraibili (di qualsiasi tipo, non solo shar) è che fanno affidamento su una particolare implementazione dei programmi; gli archivi shell creati con versioni più vecchie di makeself[3], per esempio l'Unreal Tournament originale per il programma di installazione di Linux, non riesce a girare su bash 3.x a causa di un cambiamento nel modo in cui sono gestiti gli argomenti mancanti in un comando integrato di tipo trap.

Formati simili

[modifica | modifica wikitesto]

Nel 1987, Michael Bednarek de The Melbourne Institute of Applied Economic and Social Research presso l'Università di of Melbourne sviluppò uno script per uno scopo simile nel DIGITAL Command Language per il sistema operativo VMS sotto il nome "VMS_Shar version 2".[4]

Lo scopo principale di questo script era di permettere la distribuzione del codice formattato dei programmi attraverso l'e-mail e i gruppi di discussione tra utenti perché:

  1. il software per i server di posta e NNTP ammetteva soltanto caratteri stampabili ASCII (32–126);
  2. tendevano ad eliminare gli spazi vuoti di riga (leading blanks) e di colonna (trailing blank) e i caratteri TAB;
  3. e di solito rompevano le righe più lunghe di 80 caratteri. VMS_SHAR proteggeva gli spazi vuoti d'intelineea, e spezzava i file lunghi in parti di meno di 16.000 byte.

La versione 4 introdusse la protezione degli spazi vuoti di colonna usando l'editor di testo TPU che divenne poi il principale motore dello script. La versione 5 protesse i caratteri di controllo come TAB, ESC, BEL. Nel 1988, a cominciare dalla versione 6, lo script fu poi esteso da James A. Gray della Xerox.[5] A partire dalla versione 7, Andy Harper del King's College London continuò lo sviluppo.[6] L'attuale versione (al 2008) è la 8.5 (1994).[7]

  1. ^ Apple, Mac OS X Man Page, su developer.apple.com, Apple, 6 giugno 1993. URL consultato il 7 novembre 2009.
  2. ^ Babylon Shar definition, su dictionary.babylon.com, Babylon Free Dictionary. URL consultato il 7 novembre 2009 (archiviato dall'url originale il 7 agosto 2011).
  3. ^ makeself “trap” command fix[collegamento interrotto]
  4. ^ (EN) Michael Bednarek, shar (sort of) for VMS, su comp.os.vms, 9 giugno 1987. URL consultato il 9 febbraio 2008 (archiviato il 9 febbraio 2008).
  5. ^ (EN) Jim Gray, VMS_SHARE V6.0, su comp.os.vms, 8 maggio 1988. URL consultato il 9 febbraio 2008 (archiviato il 9 febbraio 2008).
  6. ^ (EN) Andy Harper, VMS_SHARE version 7, su comp.os.vms, 6 luglio 1989. URL consultato il 9 febbraio 2008 (archiviato dall'url originale il 6 agosto 2009).
  7. ^ (EN) Andy Harper, Announcing VMS_SHARE 8.5, su vmsnet.sources.d, 5 luglio 1995. URL consultato il 9 febbraio 2008 (archiviato dall'url originale il 10 febbraio 1997).

Voci correlate

[modifica | modifica wikitesto]

Collegamenti esterni

[modifica | modifica wikitesto]
  Portale Informatica: accedi alle voci di Wikipedia che trattano di informatica