Format archiwum TAR
Format archiwum tar oferuje niezawodny sposób przechowywania plików. Zachowuje oryginalne dane bajt po bajcie, dodając na początku 512-bajtowy nagłówek. Rozmiary plików są również dostosowywane tak, aby pasowały do bloków 512-bajtowych. Co ciekawe, nagłówek zawiera wbudowaną sumę kontrolną do wykrywania błędów. Chociaż standardowe narzędzie tar może pominąć uszkodzone nagłówki (i w konsekwencji powiązane z nimi pliki), będzie kontynuować przetwarzanie pozostałej części archiwum, upewniając się, że nadal będziesz mieć dostęp do nieuszkodzonych plików.
Informacje o archiwum TAR
Format pliku tar, skrót od „archiwum taśmowe”, jest tworzony przez narzędzie tar w systemach UNIX. Służy jako archiwum do łączenia plików w celu wykonywania zadań takich jak tworzenie kopii zapasowych lub dystrybucja. W przeciwieństwie do skompresowanych formatów archiwów, pliki tar przechowują wiele plików, zwanych również plikami tar, w nieskompresowanym formacie wraz z metadanymi dotyczącymi archiwum. Chociaż same pliki tar nie są kompresowane, można je skompresować za pomocą narzędzi takich jak gzip lub bzip2 w celu wydajnego przechowywania i przesyłania.
Ponieważ sam format pliku tar nie zawiera wbudowanej kompresji, archiwa tar są często kompresowane przy użyciu zewnętrznych narzędzi, takich jak gzip, bzip2, XZ (z wykorzystaniem algorytmów kompresji 7-Zip / p7zip LZMA / LZMA2), Brotli, Zstandard i podobne narzędzia. Ta kompresja pomaga zmniejszyć rozmiar archiwum, ułatwiając przenoszenie i wydajną kopię zapasową danych. Skompresowane pliki powstałe w wyniku tego procesu mogą mieć pojedyncze rozszerzenia, takie jak tgz, tbz, txz, tzst lub podwójne rozszerzenia, takie jak tar.gz, tar.br, tar.bz2, tar.xz, tar.zst.
Ewolucja formatu archiwum TAR
Format archiwum tar ewoluował z biegiem czasu. Nowe funkcje dodawane do narzędzia tar od lat 80. XX wieku doprowadziły do rozszerzeń formatów, które zawierają dodatkowe informacje w celu poprawy funkcjonalności. Wczesnym formatom tar brakowało spójności w sposobie przechowywania pól numerycznych, ale rozwiązano ten problem w późniejszych wersjach, aby zwiększyć przenośność. To ulepszenie rozpoczęło się wraz z pierwszym standardem POSIX dla formatów tar w 1988.
POSIX.1 2001 wprowadził format „rozszerzonego tar” (znany również jako tar.h lub pax). Ten format jest najbardziej elastyczny i zawiera funkcje z innych specyfikacji tar. Umożliwia dostawcom dodawanie niestandardowych funkcji za pomocą tagów. Chociaż dokumentacja podkreśla, że nie wszystkie implementacje tar radzą sobie doskonale z tym formatem, jego konstrukcja gwarantuje, że każde narzędzie zdolne do odczytu archiwów „ustar” będzie także w stanie odczytać większość archiwów „posix”. Dodatkowo POSIX.1 2001 wyeliminował poprzednie ograniczenie rozmiaru pliku 8 GB dla archiwów tar.
Struktura TAR
Archiwum TAR to w swej istocie sekwencja bloków danych. Te bloki o stałym rozmiarze, każdy po 512 bajtów, są ułożone liniowo. Aby oznaczyć koniec archiwum, znajdują się dwa kolejne bloki wypełnione zerami.
Jednak patrząc logicznie, archiwum TAR to seria wpisów plików. Każdy wpis składa się z wielu bloków, przy czym pierwszy blok jest zawsze nagłówkiem wpisu. Pozostałe bloki przechowują rzeczywistą zawartość pliku.
Wewnątrz nagłówka wpisu
Nagłówek wpisu pełni rolę planu dla każdego pliku w archiwum. Zawiera następujące informacje
- Nazwa pliku (100 bajtów): Nazwa pliku zapisanego w tym wpisie.
- Uprawnienia do pliku (8 bajtów): Uprawnienia dostępu do pliku, reprezentowane jako ciąg ósemkowy.
- Identyfikator właściciela (8 bajtów): Numeryczny identyfikator użytkownika właściciela pliku (format ósemkowy).
- Identyfikator grupy (8 bajtów): Numeryczny identyfikator grupy właściciela pliku (format ósemkowy).
- Rozmiar pliku (12 bajtów): Rozmiar pliku w formacie ósemkowym.
- Czas ostatniej modyfikacji (12 bajtów): ósemkowy znacznik czasu ostatniej modyfikacji pliku.
- Suma kontrolna (8 bajtów): Wartość sumy kontrolnej używana do sprawdzenia integralności danych nagłówka.
- Typ pliku (1 bajt): Wskazuje typ przechowywanego pliku (zwykły plik, łącze stałe lub łącze symboliczne).
- Nazwa połączonego pliku (zmienna długość): Jeśli wpis jest łączem (twardym lub symbolicznym), w tym polu przechowywana jest nazwa połączonego pliku.
Zalety tego formatu
- Wszechstronność - TAR to wszechstronny format umożliwiający przechowywanie wielu plików i katalogów w jednym pliku archiwum, dzięki czemu nadaje się do różnych potrzeb związanych z tworzeniem kopii zapasowych i dystrybucją.
- Zachowanie atrybutów plików TAR zachowuje ważne atrybuty plików, takie jak uprawnienia, własność i znaczniki czasu, zapewniając, że zarchiwizowane dane zachowują integralność i użyteczność.
- Prostota - Struktura plików TAR jest prosta i przejrzysta, co ułatwia pracę i przetwarzanie. Upraszcza to programowanie i automatyzację zadań związanych z archiwami TAR.
Obsługiwane operacje w archiwum TAR
Aspose.ZIP umożliwia użytkownikowi wyodrębnienie konkretnego wpisu lub całego archiwum. Dla Aspose.ZIP dla .NET Możesz użyć TarArchiveClass, aby otworzyć plik .tar.gz, a następnie przeglądać jego wpisy, wyodrębniając je do żądanej lokalizacji. Dla Aspose.ZIP dla Java Podobne podejście przy użyciu TarArchive do otwarcia pliku .tar.gz i wyodrębnienia wpisów.
Plik TAR - Struktura wewnętrzna
Pliki segmentowe przechowują surowe dane o segmencie. Chociaż istnieją różne typy segmentów, pliki TAR rozróżniają jedynie segmenty danych i segmenty zbiorcze. Segmenty zbiorcze są zapisywane bezpośrednio w pliku TAR w stanie „takim, jaki jest”.
Segmenty danych są jednak sprawdzane pod kątem odniesień do innych segmentów lub surowej zawartości binarnej. Odniesienia te są po prostu przechowywane jako lista unikalnych identyfikatorów (UUID) w segmencie danych. Segmenty, do których istnieją odniesienia, mogą znajdować się w bieżącym pliku TAR lub na zewnątrz.
Odniesienia wewnętrzne można znaleźć sprawdzając indeks pliku TAR. Odniesienia zewnętrzne wymagają zewnętrznego narzędzia do zlokalizowania segmentu w innym pliku TAR. Lista segmentów, do których istnieją odniesienia w segmencie danych, jest przechowywana w pliku wykresu w celu szybszego wyszukiwania. Lista ta jest uporządkowana w celu optymalizacji procesu wyszukiwania.
Wewnętrzna struktura archiwum
- Metadane pliku – Podobnie jak w przypadku archiwum tar, każdy plik przechowuje podstawowe informacje, takie jak czas modyfikacji i uprawnienia. Jednakże ta sekcja jest elastyczna i umożliwia pominięcie lub dołączenie dodatkowych szczegółów, takich jak listy kontroli dostępu (ACL) lub rozszerzone atrybuty (EA), w zależności od potrzeb. Zaleca się dołączenie silnej funkcji skrótu (takiej jak SHA1) do zwykłych plików, aby zapewnić integralność danych.
- Wiele strumieni treści – W przeciwieństwie do tradycyjnych archiwów, pliki mogą zawierać więcej niż jeden strumień danych w wewnętrznym pliku danych. Jest to przydatne do przechowywania rozszerzonych atrybutów lub rozwidleń zasobów powiązanych z plikiem.
- Nagłówki – Wewnętrzny plik indeksu zawiera nagłówki plików, odzwierciedlając te rozproszone w wewnętrznym pliku danych. Jednak w przypadku przechowywania oddzielnie nagłówki indeksów muszą odwoływać się do pozycji początkowej odpowiadających im danych w pliku danych. Dodatkowo wpisy katalogów w indeksie zawierają listę zawartych w nich plików i odpowiadających im przesunięć w wewnętrznym indeksie plików.
- Uzasadnienie duplikacji metadanych - Ten wybór projektu zapewnia zarówno wydajne przesyłanie strumieniowe/dekodowanie danych, jak i losowy dostęp do plików. Ponadto metadane są dobrze kompresowane, co skutkuje minimalnym obciążeniem pamięci. Testy pokazują, że metadane zajmują zazwyczaj mniej niż 0,3% przestrzeni dyskowej, dlatego warto podjąć taki kompromis.
- Nagłówki bloków – Nagłówki bloków, podobnie jak plik zewnętrzny, zawierają informacje o rozmiarze bloku i unikalną sekwencję identyfikatorów.
Przykłady użycia TAR
Aspose.ZIP API umożliwia wyodrębnianie archiwów z aplikacji bez potrzeby korzystania z innych aplikacji innych firm. Aspose.ZIP API udostępnia klasę TarArchive do pracy z archiwami TAR.
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);
}
}
Dodatkowe informacje o archiwach TAR
Ludzie pytali
1. Co to jest archiwum TAR?
Archiwum TAR, skrót od Tape Archive, to format pliku używany do łączenia wielu plików i katalogów w jeden plik archiwum bez kompresji. Jest powszechnie używany do celów tworzenia kopii zapasowych i dystrybucji w systemach opartych na systemie Unix.
2. Jakie są zalety archiwów TAR?
TAR charakteryzuje się uniwersalnością, gdyż jest kompatybilny z większością systemów operacyjnych i programów archiwizujących, ułatwiając bezproblemowe udostępnianie i wymianę danych pomiędzy różnymi platformami. Jego prostota polega na prostej strukturze archiwów TAR, umożliwiającej łatwe tworzenie, wyodrębnianie i manipulowanie plikami. Co więcej, TAR zapewnia wydajność, umożliwiając kompresję za pomocą zewnętrznych narzędzi, takich jak gzip lub bzip2, umożliwiając użytkownikom zmniejszenie rozmiaru pliku oraz oszczędzanie miejsca i przepustowości podczas transmisji danych.
3. Jakie są ograniczenia archiwów TAR?
Chociaż TAR jest wszechstronnym formatem plików powszechnie używanym do archiwizacji i dystrybucji plików w systemach uniksowych, ma on pewne ograniczenia, o których należy pamiętać. Po pierwsze, TAR nie ma wbudowanych funkcji kompresji, co oznacza, że będziesz potrzebować dodatkowych narzędzi, takich jak gzip lub bzip2, aby zmniejszyć rozmiar plików. Po drugie, archiwa TAR nie oferują natywnych funkcji szyfrowania, więc jeśli potrzebujesz bezpieczeństwa danych, będziesz musiał polegać na zewnętrznych narzędziach do ochrony hasłem. Wreszcie, TAR ma ograniczoną obsługę zachowywania atrybutów plików, takich jak znaczniki czasu i uprawnienia z oryginalnych plików, co może mieć wpływ na integralność zarchiwizowanych danych.