Niveau :      
Résumé : ar

Connaissez-vous la commande ar ? Ar fait partie de ces commandes à 2 lettres créées à l'époque ou un octet coûtait plus cher que votre salaire mensuel.

Commande

Comme son nom l'indique, ar sert tout simplement à créer des archives :

$ ar rc archive.ar fichier

Et voila on vient de créer une archive avec un fichier dedans. ar sait gérer l'ajout, le remplacement et la suppression de fichier dans une archive, le tout avec des commandes très courtes :

# on remplace le contenu de fichier dans l'archive
$ ar r archive.ar fichier
# on supprime le fichier de l'archive
$ ar d archive.ar fichier

Format

Mais venons-en au point intéressant, ar est un format de fichier extrêmement simple. En fait, dans la plus pure tradition unix et au prix de quelques octets, le format est lisible puisque c'est du texte.

Lisons notre archive :

!<arch>
fichier/        1224766279  1000  1000  100644  7         `
blah

Le l'archive commence simplement par !<arch>, et chaque fichier est inclus tel quel dans l'archive préfixé d'une en-tête de taille fixe de 60 caractères. Vous voyez que vous pouvez vous-même en créer à la main. Une ligne d'en-tête est définie comme suit :

Début	Fin	Nom 			Format
0 	15 	File name 		ASCII
16 	27 	File modification ts 	Decimal
28 	33 	Owner ID 		Decimal
34 	39 	Group ID 		Decimal
40 	47 	File mode	 	Octal
48 	57 	File size in bytes 	Decimal
58 	59 	File magic 		\140\012

Facile a lire et à écrire, un seul petit inconvénient, la taille des noms de fichier est limitée. Il va donc falloir un peu d'astuce pour stocker les noms longs quelque part. Le ar de GNU les stocke dans un fichier virtuel nommé // et y fait référence sous la forme /numéro.