TAR-arkivformat
Tar-arkivformatet erbjuder ett tillförlitligt sätt att lagra filer. Den bevarar den ursprungliga datan byte-för-byte, lägger till en 512-byte header i början. Filstorlekar justeras också för att passa snyggt i 512-byte block. Intressant nog inkluderar rubriken en inbyggd kontrollsumma för feldetektering. Även om standardverktyget tar kan hoppa över korrupta rubriker (och följaktligen de associerade filerna), kommer det att fortsätta bearbeta resten av arkivet, vilket säkerställer att du fortfarande kan komma åt oskadade filer.
Om TAR Arkivinformation
Ett tar-filformat, förkortning för “tape archive”, skapas av tar-verktyget i UNIX-system. Det fungerar som ett arkiv för att bunta ihop filer för uppgifter som säkerhetskopiering eller distribution. Till skillnad från komprimerade arkivformat lagrar tar-filer flera filer, även känd som en tarball, i ett okomprimerat format tillsammans med metadata om arkivet. Även om tar-filer i sig inte är komprimerade, kan de komprimeras med hjälp av verktyg som gzip eller bzip2 för effektiv lagring och överföring.
Eftersom själva tar-filformatet inte inkluderar inbyggd komprimering, komprimeras tar-arkiv ofta med hjälp av externa verktyg som gzip, bzip2, XZ (använder 7-Zip / p7zip LZMA / LZMA2-komprimeringsalgoritmer), Brotli, Zstandard och liknande verktyg. Denna komprimering hjälper till att minska storleken på arkivet för enklare portabilitet och effektiv säkerhetskopiering av data. Komprimerade filer som härrör från denna process kan ha enstaka tillägg som tgz, tbz, txz, tzst eller dubbla tillägg som tar.gz, tar.br, tar.bz2, tar.xz, tar.zst.
Utveckling av TAR-arkivformatet
Tar-arkivformatet har utvecklats över tiden. Nya funktioner som lagts till i tar-verktyget sedan 1980-talet ledde till formattillägg som inkluderar ytterligare information för förbättrad funktionalitet. Tidiga tjärformat saknade konsekvens i hur numeriska fält lagrades, men detta togs upp i senare versioner för att förbättra portabiliteten. Denna förbättring började med den första POSIX-standarden för tar-format 1988.
POSIX.1 2001 introducerade “extended tar”-formatet (även känt som tar.h eller pax). Detta format är det mest flexibla och innehåller funktioner från andra tjärspecifikationer. Det tillåter leverantörer att lägga till anpassade funktioner med hjälp av taggar. Även om dokumentationen visar att inte alla tar-implementationer kan hantera detta format perfekt, säkerställer dess design att alla verktyg som kan läsa “ustar”-arkiv också kan läsa de flesta “posix”-arkiv. Dessutom eliminerade POSIX.1 2001 den tidigare begränsningen på 8 GB filstorlek för tar-arkiv.
TAR Struktur
Ett TAR-arkiv är i sin kärna en sekvens av datablock. Dessa block med fast storlek 512 byte är vart och ett linjärt arrangerade. För att markera slutet på arkivet finns det två på varandra följande block fyllda med nollor.
Men logiskt sett är ett TAR-arkiv en serie filposter. Varje post består av flera block, där det första blocket alltid är posthuvudet. De återstående blocken lagrar det faktiska filinnehållet.
Inuti posthuvudet
Inmatningshuvudet fungerar som en ritning för varje fil i arkivet. Den innehåller följande information
- Filnamn (100 byte): Namnet på filen som är lagrad i denna post.
- Filbehörigheter (8 byte): Behörigheter för åtkomst till filen, representerad som en oktal sträng.
- Ägar-ID (8 byte): Filägarens numeriska användar-ID (oktalt format).
- Grupp-ID (8 byte): Filägarens numeriska grupp-ID (oktalt format).
- Filstorlek (12 byte): Storleken på filen i oktalt format.
- Senast ändrad tid (12 byte): Den oktala tidsstämpeln för den senaste filändringen.
- Kontrollsumma (8 byte): Ett kontrollsummavärde som används för att verifiera integriteten hos rubrikdata.
- Filtyp (1 byte): Indikerar vilken typ av fil som lagras (vanlig fil, hårdlänk eller symbolisk länk).
- Länkat filnamn (variabel längd): Om posten är en länk (hård eller symbolisk), lagrar detta fält namnet på den länkade filen.
Fördelar med detta format
- Mångsidighet - TAR är ett mångsidigt format som kan lagra flera filer och kataloger i en enda arkivfil, vilket gör det lämpligt för olika säkerhetskopierings- och distributionsbehov.
- Bevarande av filattribut TAR bevarar viktiga filattribut som tillstånd, äganderätt och tidsstämplar, vilket säkerställer att den arkiverade datan behåller sin integritet och användbarhet.
- Enkel - Strukturen för TAR-filer är enkel och okomplicerad, vilket gör dem lätta att arbeta med och bearbeta. Detta förenklar programmering och automatisering av uppgifter relaterade till TAR-arkiv.
TAR Archive Supported Operations
Aspose.ZIP tillåter användaren att extrahera antingen en viss post eller hela arkivet. För Aspose.ZIP för .NET Du kan använda TarArchiveClass för att öppna .tar.gz-filen och sedan iterera genom dess poster och extrahera dem till önskad plats. För Aspose.ZIP för Java Liknande tillvägagångssätt med TarArchive för att öppna .tar.gz-filen och extrahera poster.
TAR-fil - intern struktur
Segmentfiler lagrar rådata om ett segment. Även om olika segmenttyper finns, skiljer TAR-filer endast mellan data- och bulksegment. Bulksegment sparas direkt “i befintligt skick” i TAR-filen.
Datasegment undersöks dock för att hitta referenser till andra segment eller rått binärt innehåll. Dessa referenser lagras helt enkelt som en lista med unika identifierare (UUID) inom datasegmentet. De refererade segmenten kan placeras antingen i den aktuella TAR-filen eller externt.
Interna referenser hittas genom att kontrollera TAR-filens index. Externa referenser kräver ett externt verktyg för att lokalisera segmentet i en annan TAR-fil. Listan över refererade segment i ett datasegment lagras i graffilen för snabbare hämtning. Denna lista hålls i ordning för att optimera sökprocessen.
Inre arkivstruktur
- Filmetadata - I likhet med ett tar-arkiv lagrar varje fil grundläggande information som ändringstid och behörigheter. Det här avsnittet är dock flexibelt och tillåter att utelämna eller inkludera ytterligare detaljer som åtkomstkontrollistor (ACL) eller utökade attribut (EA) baserat på dina behov. Det rekommenderas att inkludera en stark hash-funktion (som SHA1) för vanliga filer för att säkerställa dataintegritet.
- Flera innehållsströmmar - Till skillnad från traditionella arkiv kan filer ha mer än en dataström i den inre datafilen. Detta är användbart för att lagra utökade attribut eller resursgaffel som är associerade med filen.
- Rubriker - Den inre indexfilen innehåller filrubriker som speglar de som är utspridda i hela den inre datafilen. Men när de lagras separat måste indexrubrikerna referera till startpositionen för deras motsvarande data i datafilen. Dessutom listar katalogposter i indexet deras innehållna filer och deras motsvarande förskjutningar inom det inre filindexet.
- Rational för dubbletter av metadata - Detta designval säkerställer både effektiv dataströmning/avkodning och slumpmässig filåtkomst. Dessutom komprimeras metadata bra, vilket resulterar i minimal lagringskostnad. Tester visar att metadata vanligtvis upptar mindre än 0,3 % av lagringsutrymmet, vilket gör avvägningen värd besväret.
- Blockhuvuden - Blockhuvuden, liknande den yttre filen, innehåller information om blockstorlek och en unik identifierarsekvens.
Exempel på användning av TAR
Aspose.ZIP API låter extrahera arkiv i dina applikationer utan att behöva några andra applikationer från tredje part. Aspose.ZIP API tillhandahåller TarArchive-klass för att arbeta med TAR-arkiv.
Add entries to existing TAR archive via C#
All you need to do is open archive for extraction and add entry to archive .
using (TarArchive archive = new TarArchive(“existing.tar”))
{
archive.CreateEntry("one_more.bin", “data.bin”);
archive.Save(“added.tar”);
}
Delete entries from existing TAR archive via .net
Entries of tar archive can be deleted with similar DeleteEntry methods.
using (var archive = new TarArchive("two_files.tar"))
{
archive.DeleteEntry(0);
archive.Save("single_file.tar");
}
Add files to TAR archive without compression
Tar is a file archival format used to group multiple files and directories into a single archive file without compression , unlike formats like ZIP, RAR and others. To create a tar archive without specifying any compression settings, simply use a TarArchive instance.
using (FileStream tarFile = File.Open("joint.tar", FileMode.Create))
{
FileInfo fi1 = new FileInfo("text.txt");
FileInfo fi2 = new FileInfo("picture.png");
using (TarArchive archive = new TarArchive())
{
archive.CreateEntry("text.txt", fi1);
archive.CreateEntry("picture.png", fi2);
archive.Save(tarFile);
}
}
Ytterligare information om TAR-arkiv
Folk har frågat
1. Vad är ett TAR-arkiv?
Ett TAR-arkiv, förkortning för Tape Archive, är ett filformat som används för att bunta ihop flera filer och kataloger till en enda arkivfil utan komprimering. Det används vanligtvis för säkerhetskopiering och distribution i Unix-baserade system.
2. Vilka är fördelarna med TAR-arkiv?
TAR stoltserar med universalitet, eftersom det är kompatibelt med de flesta operativsystem och arkivprogram, vilket underlättar sömlös datadelning och utbyte mellan olika plattformar. Dess enkelhet ligger i den enkla strukturen hos TAR-arkiv, vilket möjliggör enkel skapande, extrahering och manipulering av filer. Dessutom erbjuder TAR effektivitet genom att tillåta komprimering med externa verktyg som gzip eller bzip2, vilket gör det möjligt för användare att minska filstorleken och spara lagringsutrymme och bandbredd under dataöverföring.
3. Vilka är några begränsningar för TAR-arkiv?
Även om TAR är ett mångsidigt filformat som vanligtvis används för att arkivera och distribuera filer i Unix-baserade system, har det vissa begränsningar att vara medveten om. För det första saknar TAR inbyggda komprimeringsmöjligheter, vilket innebär att du behöver ytterligare verktyg som gzip eller bzip2 för att minska filstorlekarna. För det andra erbjuder TAR-arkiv inte inbyggda krypteringsfunktioner, så om du behöver datasäkerhet måste du lita på externa verktyg för lösenordsskydd. Slutligen har TAR begränsat stöd för att bevara filattribut som tidsstämplar och behörigheter från originalfilerna, vilket kan påverka integriteten hos den arkiverade datan.