Τι είναι ένα αρχείο TAR;
Τα αρχεία με επέκταση .tar είναι αρχεία που δημιουργούνται με βοηθητικό πρόγραμμα που βασίζεται στο Unix για τη συλλογή ενός ή περισσότερων αρχείων. Πολλά αρχεία αποθηκεύονται σε ασυμπίεστη μορφή με την υποστήριξη της προσθήκης αρχείων καθώς και φακέλων στο αρχείο. Το βοηθητικό πρόγραμμα TAR στο Unix βασίζεται σε εντολές, αλλά τα αρχεία που δημιουργούνται υποστηρίζονται από τα περισσότερα συστήματα αρχειοθέτησης αρχείων σε όλα σχεδόν τα λειτουργικά συστήματα. Δημιουργήθηκε για πρώτη φορά το 1979 από τα AT&T Bell Laboratories και οι επόμενες εκδόσεις δημοσιεύθηκαν με το πέρασμα του χρόνου.
Μορφή αρχείου TAR
Το TAR είναι μια ανοιχτή μορφή αρχείου με πλήρεις προδιαγραφές διαθέσιμες για αναφορά προγραμματιστή. Η δομή του αρχείου του τυποποιήθηκε στο POSIX.1-1988 και αργότερα στο POSIX.1-2001. Τα σύνολα δεδομένων που δημιουργούνται από το tar διατηρούν πληροφορίες σχετικά με τις παραμέτρους του συστήματος αρχείων όπως:
- Ονομα
- Χρονοσήμανση
- Ιδιοκτησία
- Δικαιώματα πρόσβασης αρχείων
- Οργάνωση καταλόγου
Ένα αρχείο Tar δεν έχει κανένα μαγικό αριθμό. Περιέχει μια σειρά μπλοκ όπου κάθε μπλοκ είναι BLOCKSIZE byte.
Κάθε αρχείο που αρχειοθετείται αντιπροσωπεύεται από ένα μπλοκ κεφαλίδας που περιγράφει το αρχείο, ακολουθούμενο από μηδέν ή περισσότερα μπλοκ που δίνουν τα περιεχόμενα του αρχείου. Στο τέλος του αρχείου αρχειοθέτησης υπάρχουν δύο μπλοκ 512 byte γεμάτα με δυαδικά μηδενικά ως δείκτης τέλους αρχείου. Ένα λογικό σύστημα θα πρέπει να γράφει έναν τέτοιο δείκτη τέλους αρχείου στο τέλος ενός αρχείου, αλλά δεν πρέπει να υποθέτει ότι υπάρχει τέτοιο μπλοκ κατά την ανάγνωση ενός αρχείου. Συγκεκριμένα, το GNU tar εκδίδει πάντα μια προειδοποίηση εάν δεν το συναντήσει.
Τα μπλοκ ενδέχεται να είναι μπλοκαρισμένα για φυσικές λειτουργίες I/O. Κάθε εγγραφή n μπλοκ (όπου το n ορίζεται από την επιλογή blocking-factor = 512-size επιλογή σε tar) γράφεται με μία μόνο λειτουργία “write()”. Στις μαγνητικές ταινίες, το αποτέλεσμα μιας τέτοιας εγγραφής είναι ένας μόνο δίσκος. Όταν γράφετε ένα αρχείο, η τελευταία εγγραφή των μπλοκ θα πρέπει να γράφεται στο πλήρες μέγεθος, με τα μπλοκ μετά το μηδενικό μπλοκ να περιέχουν όλα τα μηδενικά. Κατά την ανάγνωση ενός αρχείου, ένα λογικό σύστημα θα πρέπει να χειρίζεται σωστά ένα αρχείο του οποίου η τελευταία εγγραφή είναι μικρότερη από τα υπόλοιπα ή που περιέχει εγγραφές σκουπιδιών μετά από ένα μηδενικό μπλοκ.
Κεφαλίδα πίσσας
Όπως κάθε άλλη κεφαλίδα αρχείου, η εγγραφή κεφαλίδας αρχείου tar περιέχει μεταδεδομένα για ένα αρχείο και εμφανίζεται στον παρακάτω πίνακα.
Μετατόπιση πεδίου | Μέγεθος πεδίου (Byte) | Πεδίο |
---|---|---|
0 | 100 | Όνομα αρχείου |
100 | 8 | Λειτουργία αρχείου |
108 | 8 | Αριθμητικό αναγνωριστικό χρήστη κατόχου |
116 | 8 | Αριθμητικό αναγνωριστικό χρήστη ομάδας |
124 | 12 | Μέγεθος αρχείου σε byte (οκταδική βάση) |
136 | 12 | Ώρα τελευταίας τροποποίησης σε αριθμητική μορφή χρόνου Unix (οκταδική) |
148 | 8 | Άθροισμα ελέγχου για εγγραφή κεφαλίδας |
156 | 1 | Ένδειξη συνδέσμου (τύπος αρχείου) |
157 | 100 | Όνομα συνδεδεμένου αρχείου |
Τα πεδία που δεν χρησιμοποιούνται γεμίζουν με NUL byte. Μια κεφαλίδα αποτελείται από 257 byte, τα οποία είναι γεμάτα με NUL byte για να γεμίσει σε εγγραφή 512 byte.