SHAR-archiefformaat
SHAR (Shell Archive) is een op Unix gebaseerd archiefformaat dat bestanden bundelt in één enkel shellscript. Het formaat codeert bestanden in een platte tekstscript dat kan worden uitgevoerd op een Unix-achtig systeem om de originele bestanden opnieuw te creëren. SHAR werd in de begindagen van Unix veel gebruikt voor softwaredistributie en het delen van verzamelingen bestanden, vooral via e-mail of Usenet. Hoewel het grotendeels is vervangen door modernere formaten zoals tar en zip, blijft SHAR een belangrijk historisch formaat in het Unix-ecosysteem, gewaardeerd om zijn eenvoud en de mogelijkheid om te worden gemaakt en geëxtraheerd met behulp van eenvoudige shell-opdrachten.
Algemene SHAR-archiefinformatie
SHAR-archieven (Shell Archives) zijn een op Unix gebaseerd formaat dat wordt gebruikt voor het bundelen van meerdere bestanden in één enkel tekstscript. Wanneer dit script wordt uitgevoerd, worden de originele bestanden en mappen opnieuw gemaakt op een Unix-achtig systeem. SHAR was vooral populair in de begindagen van Unix voor het distribueren van software, documentatie en andere bestandsverzamelingen via e-mail of Usenet. Hoewel moderne compressieformaten SHAR grotendeels hebben vervangen, blijft het een belangrijk formaat in de geschiedenis van Unix vanwege de eenvoud en het gebruiksgemak met standaard shell-opdrachten.
Geschiedenis van SHAR-archiefformaten
- Jaren 80: SHAR ontstond als een handige methode voor het bundelen van bestanden in één enkel script voor distributie op Unix-systemen. Het was vooral handig in omgevingen waar e-mail en Usenet de belangrijkste middelen waren om software en bestanden te delen.
- Begin jaren negentig: Naarmate het internetgebruik groeide, bleef SHAR een populair formaat voor het distribueren van bestanden via e-mail, waarbij het eenvoudige, op tekst gebaseerde formaat gemakkelijk via vroege netwerken kon worden verzonden.
- Midden jaren negentig: De opkomst van meer geavanceerde archiefformaten zoals tar, gecombineerd met compressietools zoals gzip, leidde tot een afname van het gebruik van SHAR, hoewel het in gebruik bleef voor eenvoudige, op tekst gebaseerde distributie.
- Jaren 2000: SHAR werd meer een nicheformaat, voornamelijk gebruikt in specifieke Unix-gemeenschappen of voor historische doeleinden. Door het gemak waarmee het gemaakt kon worden en de compatibiliteit met standaard shell-opdrachten bleef het relevant voor bepaalde taken.
- Tegenwoordig: Hoewel SHAR grotendeels vervangen is door moderne archiefformaten, wordt het nog steeds erkend vanwege zijn rol in de Unix-geschiedenis en wordt het af en toe gebruikt in oudere systemen of voor educatieve doeleinden.
Structuur van het Shell-archief
De structuur van een SHAR-bestand (Shell Archive) is ontworpen als een zelfuitpakkend script dat kan worden uitgevoerd op Unix-achtige systemen. In tegenstelling tot binaire archieven zijn SHAR-bestanden platte tekst en worden ze door de shell geïnterpreteerd. Hier is een overzicht van de structuur van een typisch SHAR-archief:
- Koptekst: Het SHAR-archief begint met een koptekst die doorgaans opmerkingen over het archief bevat, zoals de aanmaakdatum, de auteur en een beschrijving van de inhoud. Deze sectie bevat mogelijk ook instructies voor het uitpakken van het archief.
- Bestandsrichtlijnen:
- Elk bestand binnen het SHAR-archief wordt vertegenwoordigd door een reeks shell-opdrachten. Deze opdrachten beginnen meestal met echo- of cat-opdrachten die de bestandsinhoud naar de juiste locaties op het systeem schrijven.
- De bestandsrichtlijnen bevatten ook opdrachten om de juiste bestandsrechten in te stellen, met behulp van chmod-opdrachten nadat elk bestand is gemaakt.
- Bestandsinhoud: De daadwerkelijke inhoud van elk bestand is opgenomen in het SHAR-archief, meestal gecodeerd met behulp van op tekst gebaseerde methoden zoals uuencoding. Dit zorgt ervoor dat binaire bestanden veilig in het archief kunnen worden opgenomen en als platte tekst kunnen worden overgedragen.
- Mapstructuur: Als het SHAR-archief mappen bevat, bevat het script opdrachten om deze mappen te maken met behulp van mkdir-opdrachten voordat de bestanden erin worden uitgepakt.
- Voettekst: Het SHAR-archief wordt afgesloten met een voettekst, die vaak aanvullende opmerkingen, een controlesom of andere metagegevens bevat om de integriteit van de uitgepakte bestanden te verifiëren. De voettekst kan ook een bericht bevatten dat de succesvolle voltooiing van het extractieproces aangeeft.
SHAR-compressiemethoden
SHAR-bestanden (Shell Archive) bevatten inherent geen compressiemethoden binnen het formaat zelf. In plaats daarvan zijn het shell-scripts met platte tekst die zijn ontworpen om bestanden te verpakken voor eenvoudige distributie en extractie in Unix-achtige omgevingen. Compressie kan echter op een aantal verschillende manieren worden toegepast:
- Niet-gecomprimeerd: SHAR-archieven zijn standaard niet-gecomprimeerde tekstbestanden, waardoor ze gemakkelijk leesbaar en uitvoerbaar zijn als shell-scripts. Deze aanpak handhaaft de eenvoud en brede compatibiliteit, waardoor bestanden gemakkelijk kunnen worden uitgepakt met standaard shell-opdrachten.
- Externe compressie: SHAR-bestanden kunnen worden gecomprimeerd met behulp van externe compressietools zoals GZIP, BZIP2 of ZIP nadat ze zijn gemaakt. Dit verkleint de totale bestandsgrootte voor distributie of opslag, maar vereist decompressie voordat het SHAR-archief kan worden uitgevoerd. Een SHAR-bestand kan bijvoorbeeld worden gedistribueerd als een .shar.gz- of .shar.bz2-bestand.
- Compressie na het uitpakken: In sommige gevallen kunnen SHAR-archieven opdrachten in het script bevatten om afzonderlijke bestanden te comprimeren nadat ze zijn uitgepakt. Dit komt minder vaak voor, maar kan worden gebruikt wanneer specifieke bestanden in het archief moeten worden gecomprimeerd als onderdeel van het uitpakproces.
- Combinatie met TAR: Hoewel SHAR zelf geen compressie omvat, kan het worden gecombineerd met een TAR-archief (dat vervolgens kan worden gecomprimeerd) om een .tar.shar.gz of een soortgelijk bestand te maken. Met deze methode kunnen grotere verzamelingen bestanden in één stap worden gearchiveerd en gecomprimeerd.
.shar ondersteunde bewerkingen
Aspose.Zip API ondersteunt een verscheidenheid aan bewerkingen voor het werken met .shar-bestanden, dit zijn schijfkopiebestanden die vaak worden gebruikt voor het distribueren van software en het maken van back-ups. Hier zijn enkele van de belangrijkste bewerkingen die door de Aspose.Zip API voor .shar-bestanden worden ondersteund:
- SHAR-archieven maken: SHAR-bestanden bieden, naast hun eenvoud, een veelzijdige benadering van softwaredistributie en het maken van back-ups. Aspose.Zip stelt u in staat dit formaat naadloos te benutten met een uitgebreide reeks functionaliteiten. Creëer gloednieuwe SHAR-archieven van uw bestaande bestanden en mappen. Deze functionaliteit is ideaal voor het maken van software-installatieprogramma’s of uitgebreide back-ups. Aspose.Zip ondersteunt mogelijk niet alle functionaliteiten die verband houden met traditionele archieven zoals ZIP, RAR, 7Z en andere formaten voor SHAR-bestanden.
Structuur van .shar-bestand
Een SHAR-bestand is in wezen een shellscript. Het is een op tekst gebaseerd formaat dat opdrachten bevat om de originele bestandsstructuur opnieuw te creëren wanneer deze wordt uitgevoerd. Basisstructuur:
- Shellscript-header: Standaard shell-scriptheader (bijvoorbeeld #!/bin/sh).
- Bestandmetagegevens: Informatie over elk bestand, inclusief bestandsnaam, machtigingen en wijzigingstijd.
- Bestandsinhoud: De daadwerkelijke bestandsinhoud, meestal gecodeerd in base64 of een vergelijkbaar formaat.
- Shell-opdrachten: Commando’s om mappen te maken en bestandsinhoud naar schijf te schrijven.
De teloorgang van SHAR-archieven
Redenen voor daling
Tegenwoordig worden SHAR-archieven beschouwd als een verouderd formaat en worden ze zelden gebruikt in moderne softwaredistributie. Ze kunnen nog steeds worden aangetroffen in historische software-archieven of in nichesituaties waar compatibiliteit met zeer oude systemen vereist is, maar ze zijn grotendeels verdrongen door efficiëntere en betrouwbaardere archiveringsmethoden.
- Beperkte functionaliteit: SHAR-archieven missen functies die wel voorkomen in moderne archiefformaten, zoals compressie, foutafhandeling en behoud van metagegevens.
- Beveiligingsproblemen: Omdat SHAR-bestanden shellscripts zijn, kunnen ze mogelijk kwaadaardige code bevatten, wat een veiligheidsrisico met zich meebrengt.
- Efficiëntie: Vergeleken met nieuwere formaten is SHAR over het algemeen minder efficiënt wat betreft opslag- en extractiesnelheid.
- Opkomst van betere alternatieven: Formaten zoals ZIP, TAR en 7-Zip bieden superieure prestaties, beveiliging en functies, waardoor ze de voorkeurskeuze zijn voor de meeste gebruikers.
Voorbeelden van het gebruik van SHAR-archieven
Aspose.Zip biedt de mogelijkheid om SHAR-bestanden (Shell Archive) te maken, waardoor u meerdere bestanden in één archief kunt bundelen voor eenvoudige distributie op UNIX- en Linux-systemen. Het is echter belangrijk op te merken dat Aspose.Zip momenteel alleen het maken van SHAR-archieven ondersteunt en geen functionaliteit biedt voor andere bewerkingen zoals het uitpakken of wijzigen van bestaande SHAR-bestanden. Hieronder vindt u voorbeelden die laten zien hoe u SHAR-archieven kunt maken met Aspose.Zip in uw projecten.
Create SHAR Arcive via C#
using(SharArchive a = new SharArchive())
{
a.CreateEntry(“first.bin”, “data.bin”);
a.Save(“result.shar”);
}
Aanvullende informatie
Mensen hebben ernaar gevraagd
1. Hoe extraheer ik bestanden uit een SHAR-archief?
Om bestanden uit een SHAR-archief te extraheren, voert u het SHAR-bestand zelf uit. Het script voert de opdrachten uit om de originele bestandsstructuur opnieuw te creëren.
2. Worden SHAR-archieven nog steeds gebruikt?
SHAR-archieven worden tegenwoordig zelden gebruikt. Moderne archiefformaten zoals ZIP, TAR en 7-Zip bieden superieure functies en beveiliging, waardoor ze voor de meeste gebruikers de voorkeurskeuze zijn.
3. Wat zijn de beperkingen van SHAR-archieven?
SHAR-archieven hebben verschillende beperkingen, waaronder een gebrek aan compressie, beperkte ondersteuning voor metagegevens, potentiële veiligheidsrisico’s vanwege hun aard als shell-scripts, en inefficiëntie vergeleken met moderne archiefformaten.