Cos'è shar?

Shar

Shar, abbreviativo di "shell archive", è un formato di file archivio di tipo self-extracting, tipicamente utilizzato in ambienti Unix-like per distribuire file di testo, script e piccoli programmi. In pratica, è uno script di shell che, una volta eseguito, crea e popola un insieme di file e directory.

Caratteristiche Principali:

  • Self-extracting: Un archivio shar è eseguibile. Eseguendolo, i file contenuti al suo interno vengono estratti nella directory corrente. Questo rende la distribuzione e l'installazione molto semplici, in particolare per utenti meno esperti.
  • Basato su testo: Gli archivi shar sono file di testo. Questo significa che possono essere creati, modificati e trasferiti utilizzando strumenti standard di testo, e che sono resistenti a problemi di compatibilità binaria tra diverse architetture.
  • Utilizzo di comandi standard: Un archivio shar tipicamente utilizza comandi standard di Unix/Linux come echo, cat, sed, mkdir, chmod, uuencode/uudecode, gzip e tar per creare, manipolare e decomprimere i file archiviati. La compressione è spesso opzionale, e viene realizzata tramite gzip.
  • Limitazioni: A causa della loro natura testuale e del metodo di estrazione, gli archivi shar sono meno efficienti in termini di spazio rispetto ad altri formati come .tar.gz o .zip. Inoltre, sono meno robusti a errori di trasmissione, soprattutto in assenza di controlli di integrità (checksum).

Come Funziona:

Un archivio shar contiene essenzialmente un grande script di shell. Questo script esegue le seguenti operazioni:

  1. Creazione delle directory: Se necessario, crea le directory in cui i file dovranno essere estratti.
  2. Estrazione dei file: Utilizza comandi come echo e cat per scrivere i contenuti dei file archiviati. In alcuni casi, i file binari sono codificati in formato testo (ad esempio, con uuencode) per poter essere inclusi nell'archivio shar. In tal caso, lo script utilizza uudecode per ricostruire i file binari originali.
  3. Impostazione dei permessi: Imposta i permessi corretti sui file e sulle directory, usando il comando chmod.

Creazione di un archivio Shar:

Sebbene la creazione manuale di un archivio shar sia possibile, esistono strumenti che automatizzano il processo. Il comando shar è lo strumento standard per la creazione di archivi shar. Altri strumenti includono script e utilities che semplificano il processo, spesso integrando la compressione.

Esempio di Utilizzo:

Supponiamo di avere un file chiamato mio_script.sh che vogliamo distribuire. Per creare un archivio shar, potremmo usare il comando:

shar mio_script.sh > mio_script.shar

L'utente che riceve mio_script.shar può estrarre il file eseguendolo:

sh mio_script.shar

Argomenti Important: