xar (archiwizator)
Rozszerzenia nazw plików |
.xar , .pkg , .xip
|
---|---|
Rodzaj mediów internetowych |
aplikacja/x-xar
|
Jednolity identyfikator typu (UTI) | com.apple.xar-archiwum |
magiczny numer | xar! |
Typ formatu | Format pliku archiwum |
Przedłużony od | XML , gzip |
XAR (skrót od e X tensible AR chive format ) to archiwizator plików typu open source i format pliku archiwizatora . Został stworzony w ramach OpenDarwin i jest używany w systemie macOS X 10.5 i nowszych do procedur instalacji oprogramowania, a także jako rozszerzenia przeglądarki w przeglądarce Safari 5.0 i nowszych. Xar zastąpił korzystanie z plików pax spakowanych gzipem .
Jedna gałąź programistyczna RPM , RPM5 , używa xar.
Struktura plików
Plik składa się z trzech sekcji, nagłówka, spisu treści i sterty. Wszystkie pola są przechowywane w big endian .
nagłówek
Zrównoważyć# |
Rozmiar (w bajtach) |
Zamiar |
---|---|---|
0 | 4 |
Podpis pliku używany do identyfikacji formatu pliku jako Xar. To zawsze powinno być równe xar!
|
4 | 2 | Rozmiar nagłówka |
6 | 2 |
Wersja formatu Xar do użycia. Obecnie jest tylko wersja 1. |
8 | 8 | Długość skompresowanych danych TOC. |
16 | 8 | Długość nieskompresowanych danych spisu treści. |
24 | 4 | Algorytm sumy kontrolnej: |
28 | 0, 4, 36 | czasami dopełnienie bajtów lub nazwa algorytmu sumy kontrolnej |
Spis treści
Xar różni się od cpio , tar lub ar tym, że przechowuje TOC (spis treści) na początku pliku, co sprawia, że dołączanie do archiwum jest bardziej skomplikowane, ale sprawia, że przeglądanie archiwum w celu wyodrębnienia pojedynczego pliku staje się niepotrzebne . Spis treści jest przechowywany jako zlib , zakodowany w UTF-8 dokument XML . Każdy plik przechowywany w Xar jest niezależnie kompresowany/kodowany. Daje to możliwość zakodowania plików przy użyciu gzip mając inny plik w tym samym archiwum zakodowany przy użyciu innej metody, takiej jak bzip2 . W niektórych systemach element archiwum można również zakodować xz lub lzma .
Przykład Spis treści
0
<?xml version="1.0" encoding="UTF-8"?> <xar> <toc> <suma kontrolna style= "sha1" > <offset> </offset> <size> 20 </size> < / suma kontrolna> <file id= "1" > <grupa> personel </group> <gid> 20 </gid> <użytkownik> joe </user> <uid> 501 </uid>
<tryb> 0755 </mode> <typ> katalog </typ> <nazwa> com.foobar </nazwa> < id pliku = "2" > <grupa></grupa> <gid> 20 </gid> < użytkownik></użytkownik> <uid> 501 </uid> <tryb> 0775 </mode> <typ> katalog </typ> <nazwa> Zawartość </nazwa>
<file id= "3" > <data> <length> 428 </length> <offset> 20 </offset> <size> 1005 </size> <encoding style= "application/x-gzip" /> <zarchiwizowane -checksum style= "SHA1" > a5f6f1461213a904f831d4ef6f214638342842ed </archive-checksum> <extracted-checksum style= "SHA1" >
< _ _ _ _ _ _ _ _ _ _ _ _ _ _ typ> plik </typ> <nazwa> Info.plist </nazwa> </plik> < identyfikator pliku= "4" > <grupa></grupa> <gid> 20
</gid> <user></user> <uid> 501 </uid> <tryb> 0775 </mode> <typ> katalog </typ> <nazwa> Zasoby </nazwa> < id pliku = "5" > <dane> <długość> 14868 </długość > <przesunięcie> 448 </przesunięcie> <rozmiar> 274432 </rozmiar> < styl kodowania =
"application/x-gzip" /> <archiwalna suma kontrolna style= "SHA1" > efe5c97921de7ccc5aebc158d158e9d4280d6814 </archiwalna suma kontrolna > <wyodrębniona suma kontrolna style= "SHA1" > 45c8be42d1d9afdb57ddd5e9311453010ec461 61 </wyciągnięta-suma - kontrolna> </data> <grupa> </group> <gid> 20 </gid> <użytkownik></użytkownik> <uid> 501 </uid> <tryb> 0664
</mode> <typ> plik </typ> <nazwa> foobar </nazwa> </plik> < id pliku = "6" > <dane> <długość> 17635 </ długość> <przesunięcie> 15316 < /przesunięcie > <size> 45056 </size> <encoding style= "application/x-gzip" /> <archived-checksum style= "SHA1" >
3c761ffcc81ee6e232e4f4a1c4a81654c26c4e52 </archive-checksum> <extracted-checksum style= "SHA1" > 0ea31f8ef0e5987a1838a64ab5c26ebf3ee4bc37 </extracted-checksum> </data> <group></group> <gid > 20 </gid> <użytkownik></użytkownik> <uid> 501 </uid> <tryb> 0664 </mode> <typ> plik </typ> <nazwa> docSet.skidx
</name> </file> < identyfikator pliku = "7" > <grupa></grupa> <gid> 20 </gid> <użytkownik></użytkownik> <uid> 501 </uid> <tryb> 0775 </mode> <typ> katalog </typ> <nazwa> Dokumenty </nazwa> < identyfikator pliku= "8" > <dane> <długość> 35790 </długość>
<offset> 32951 </offset> <size> 209242 </size> <encoding style= "application/x-gzip" /> <archived-checksum style= "SHA1" > 5242cd71585c34e722932f324706f8c00e1ae0c5 </archived-checksum> <extracted-checksum> style= "SHA1" > c0e013e53d829511835e2b429abb5198731e9a3e </extracted-checksum> </data> <group></group> <gid>
20 </gid> <user></user> <uid> 501 </uid> <tryb> 0664 </mode> <typ> plik </typ> <nazwa> foobar.html </nazwa> </file> </file> </file> </file> </file> </toc> </xar>
Linki zewnętrzne
- Oryginalny projekt Xar (nieutrzymywany)
- widelec z oryginalnego projektu (niekonserwowany)
- Apple xar na GitHubie