Cet aprÚs-midi, j'ai découvert un fait intéressant : le format d'archive cpio est supérieur au format tar.
tar(5) â tape archive â et cpio(5) â copy in, copy out â sont deux formats d'archive utilisĂ©s sous *nix. Ils ne sont pas identiques dans leur format interne, mais servent Ă la mĂȘme chose : stocker des fichiers divers â rĂ©guliers, rĂ©pertoires, etc. â avec leurs noms et leurs propriĂ©tĂ©s â droits, propriĂ©taires, etc. Plusieurs versions de ces formats ont Ă©tĂ© publiĂ©es, pour Ă©tendre leurs capacitĂ©s.
Ces deux formats étant à peu prÚs équivalents dans leur fonctionnalité, ils diffÚrent en fait surtout par l'interface standard de l'outil canonique qui sert à les manipuler, respectivement, tar(1) et cpio(1) : tar prend sur sa ligne de commande les options, l'action à effectuer et les fichiers à insérer ou à extraire, alors que cpio prend la liste des fichiers à insérer ou à extraire sur son entrée standard.
L'interface originale de cpio est trĂšs utile pour des cas spĂ©cifiques oĂč l'on veut faire une sĂ©lection prĂ©ciser des fichiers Ă archiver, avec un find(1) branchĂ© sur cpio. L'interface de tar, plus directe, a gagnĂ© la bataille, au point que l'outil cpio de GNU permet de manipuler des tarballs !
Pour mettre une fin Ă la guerre entre tar et cpio, un outil standard a Ă©tĂ© spĂ©cifiĂ© et dĂ©veloppĂ© : pax(1) â paix, et portable archive. Il s'agit uniquement d'un outil, et non d'un format. Cet outil permet de manipuler des archives cpio ou des tarballs, et dispose d'un mode Ă la tar â tout sur la ligne de commande â et d'un mode Ă la cpio â liste des fichiers en entrĂ©e standard.
J'en viens au titre de cet article : cpio, c'est mieux. Pour une raison trÚs simple : tar peut stocker des fichiers réguliers, des répertoires, des liens symboliques, des tubes nommés, des périphériques à blocs et des périphériques au caractÚre. C'est tout : il manque... les sockets ! Quant à cpio, et bien, lui, au moins, peut stocker tout type de fichier. On peut, de façon sûre, archiver un systÚme de fichier complet en cpio, alors que dans un tarball, les sockets seraient perdues.
Quant à pax, si j'en parle, c'est évidemment parce que l'interface de cpio est beaucoup trop contraignante dans la plupart des cas, et que pax permet donc de créer des archives cpio de façon simple :
pax -zx cpio -wf toto.cpio.gz toto/- z gzipper
- x cpio utiliser le format cpio
- w write, c'est à dire mode d'écriture d'une archive, autrement dit création
- f toto.cpio.gz écrire dans toto.cpio.gz plutÎt que sur la sortie standard
# Correction
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 4.
Je voulais dire : « est supérieur au format tar », évidemment.
[^] # Re: Correction
PostĂ© par Axioplase ıɄsâ (site web personnel) . ĂvaluĂ© Ă 5.
Ăa serait bien que les admodos laissent une trace visible de leurs modifications. Y a rien de mal Ă corriger une erreur, mais c'est mieux de l'indiquer clairement.
Transparence, toussa...
[^] # Re: Correction
PostĂ© par patrick_g (site web personnel) . ĂvaluĂ© Ă 8.
Tu imagines un journal qui se terminerai par:
NdM 11h32 : Ajout d'un s final au mot "périphérique".
NdM 11h42 : Majuscule au début de la phrase "Quant à pax".
NdM 13h06 : Remplacement de "que format tar" par "au format tar".
Ce serait ridicule. Et puis les news noyau doubleraient de taille aprĂšs inclusion de la liste des corrections de fautes ;-)
[^] # Re: Correction
PostĂ© par nomorsad . ĂvaluĂ© Ă 3.
Transparence, toussa...
[^] # Re: Correction
PostĂ© par BAud (site web personnel) . ĂvaluĂ© Ă 3.
Vous me faites bien rire avec votre transparence, elle est belle la confiance que vous mettez dans vos modérateurs ;-) (et oui, c'est bien moi qui ai effectué la correction de typo et je vous laisse retrouver les autres modifications subrepticement effectuées vu votre choix du terme "transparence" et une allusion douteuse qui me vient à l'esprit en le lisant).
[^] # Re: Correction
PostĂ© par campagnard . ĂvaluĂ© Ă 5.
[^] # Re: Correction
PostĂ© par Axioplase ıɄsâ (site web personnel) . ĂvaluĂ© Ă 2.
« NdM : corrections orthographiques/grammaticales. »
« NdM : correction URL. »
« NdM : ajout troll religio-politique subliminal. »
(et j'imagine un journal qui se termineraiT :P)
[^] # Re: Correction
PostĂ© par claudex . ĂvaluĂ© Ă 0.
NdM : corrections orthographiques/grammaticales.
NdM : corrections orthographiques/grammaticales.
NdM : corrections orthographiques/grammaticales.
C'est super pratique.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Correction
PostĂ© par campagnard . ĂvaluĂ© Ă 10.
Oui, c'est super pratique, le pluriel.
[^] # Re: Correction
PostĂ© par claudex . ĂvaluĂ© Ă 1.
« Rappelez-vous toujours que si la Gestapo avait les moyens de vous faire parler, les politiciens ont, eux, les moyens de vous faire taire. » Coluche
[^] # Re: Correction
PostĂ© par Axioplase ıɄsâ (site web personnel) . ĂvaluĂ© Ă 2.
On veut juste savoir que qq1 est passé corriger à un moment ou un autre.
Comme un « last edited by Machin. »
[^] # Re: Correction
PostĂ© par netsurfeur . ĂvaluĂ© Ă 1.
NdM : correction orthographique/grammaticale.
# Sérieusement?
PostĂ© par Damien ThĂ©bault . ĂvaluĂ© Ă 10.
Déjà si t'arrives à trouver un use-case réaliste ça sera bien.
[^] # Re: Sérieusement?
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 6.
[^] # Re: Sérieusement?
PostĂ© par Jerome Herman . ĂvaluĂ© Ă 2.
Déjà si t'arrives à trouver un use-case réaliste ça sera bien.
A part tous les programmes qui dialoguent par socket avec des droits d'accĂšs spĂ©cifiques, ça ne prĂ©sente pas trop d'intĂ©rĂȘt en effet.
Chez moi ça ne représente que les filtres mails, le greylisting, les proxy et les workers HTTP et les IPC de tout un tas de scripts Bash que j'utilise pour l'administration de mes serveurs en vrrp/carp.
[^] # Re: Sérieusement?
PostĂ© par kikicnrv . ĂvaluĂ© Ă 10.
[^] # Re: Sérieusement?
PostĂ© par Batchyx . ĂvaluĂ© Ă 2.
[^] # Re: Sérieusement?
PostĂ© par Jerome Herman . ĂvaluĂ© Ă 3.
Si bien sur, il ne me reste plus qu'Ă descendre les droits Ă la main pour que ca marche correctement.
[^] # Re: Sérieusement?
PostĂ© par Batchyx . ĂvaluĂ© Ă 3.
Les sockets unix, c'est comme pour tout les sockets, n'importe qui peut se connecter n'importe ou. Le seul avantage des sockets unix par rapport aux socket TCP, c'est qu'on est sur que ce n'est pas écoutable facilement (puisque ça ne sort pas de la machine).
[^] # Re: Sérieusement?
PostĂ© par Jerome Herman . ĂvaluĂ© Ă 5.
Certes, mais ça juste marche sous Linux, FreeBSD, OpenBSD et HP-UX pour ceux que j'ai testé.
Sous Linux et FreeBSD ca supporte mĂȘme trĂšs bien les ACLs.
De façon générale, je ne cherche de toute façon pas ici à créer un programme portable, mais à faire une sauvegarde d'un systÚme sur lequel je ne suis pas forcément le seul à travailler. De fait je ne sais pas si il y a quelque part une socket qui utilise les droits d'accÚs fichiers, et si je peux ne pas le savoir (ie ne pas passer deux heures à comprendre pourquoi la restauration ne passe pas, ou pire avoir des données corrompues silencieusement pendant une ou deux semaines avant que quelqu'un ne découvre le pot aux roses), ca m'arrange.
[^] # Re: Sérieusement?
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 2.
1. c'est logique ;
2. c'est tout l'intĂ©rĂȘt des sockets Unix : sans ça, autant faire du rĂ©seau local normalement.
[^] # Re: Sérieusement?
PostĂ© par Batchyx . ĂvaluĂ© Ă 2.
2. Tu peux toujours faire appliquer des droits à tes sockets en les plaçant dans des répertoires sur lequel tu positionne les droits. En plus ça élimine le problème insoluble du post.
[^] # Re: Sérieusement?
PostĂ© par Pierre Tramo (site web personnel) . ĂvaluĂ© Ă 6.
[^] # Re: Sérieusement?
PostĂ© par Aldoo . ĂvaluĂ© Ă 1.
(voilà , dévier le thread en troll religion : c'est fait !)
[^] # Re: Sérieusement?
PostĂ© par windu.2b . ĂvaluĂ© Ă 4.
# Autres formats
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 4.
Il y a plusieurs alternatives Ă ces formats :
â zip : format dĂ©ficient Ă l'origine â aussi dĂ©ficient que DOS, quoi â, il est potable dans sa version Info-ZIP, sous *nix ;
â dar : un format intĂ©ressant, avec un outil dont l'interface en ligne de commande est documentĂ©e de façon assez confuse ;
â xar : Ă ma connaissance le format d'archive le plus moderne, malheureusement mort depuis 2007 alors qu'il pourrait Ă©voluer (compression lzma, par exemple).
Pour un archivage trĂšs basique â pas de rĂ©pertoires, que des fichiers Ă plat â, le format ar peut faire l'affaire. Pour des besoins basiques (rĂ©pertoires, fichiers rĂ©guliers sans permission), n'importe quel format, tar, cpio, zip, peut faire l'affaire. Pour des besoins normaux (rĂ©pertoires, fichiers rĂ©guliers, liens symboliques), tar et cpio conviennent. Et pour des besoins avancĂ©s, cpio convient, au prix d'inconvĂ©nients â pas de mutualisation des liens physiques, par exemple.
[^] # Re: Autres formats
PostĂ© par tĂ©this . ĂvaluĂ© Ă 2.
Je ne connaissais pas, une rapide recherche m'a conduit vers ce site et plus précisément vers cette page : https://code.google.com/p/xar/source/browse/trunk/xar/test/c(...)
On y voit : echo "Testing normal archival creation/extraction with lzma compression"
Il y a l'air d'avoir quand mĂȘme un peu d'activitĂ©.
The capacity of the human mind for swallowing nonsense and spewing it forth in violent and repressive action has never yet been plumbed. -- Robert A. Heinlein
[^] # Re: Autres formats
PostĂ© par barmic . ĂvaluĂ© Ă 5.
J'aime bien dissocier l'archivage de la compression.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Autres formats
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 4.
[^] # Re: Autres formats
PostĂ© par Olivier (site web personnel) . ĂvaluĂ© Ă 8.
Je ne suis que moyennement d'accord avec l'intĂ©rĂȘt de ceci, tout spĂ©cialement pour deux cas :
- afficher la liste des fichiers de l'archive.
+Dans le cas d'un archivage suivit d'une compression, tu ne peux pas récupérer la liste des fichiers, sans parcours intégral de tout le fichier. Si tu as 20 go d'archive en .tar.gz sur un disque en USB 1.0, cela prendra du temps pour récupérer la liste.
+ Par contre, dans le cas d'un archivage avec compression intégrée (zip, rar, etc....), le soft de décompression peut faire des "sauts" dans l'archive, afin de retrouver la liste des fichiers. Cela limite la quantité de données lues dans le fichier, donc le résultat arrivera plus vite
- résistance à la corruption :
+ Si tu prends un .tar.gz, et que tu le corromps (écriture aléatoire de données dans le fichier), l'extraction bloquera dÚs la premiÚre erreur trouvée
+ D'autres formats qui lient archivage et compression (arj par exemple) supportent largement mieux la corruption. Les données compressées situées dans la zone corrompu seront certes illisbles. Par contre, les autres, et tout spécialement ceux situés aprÚs la zone corrompu, seront extractable. On perdra donc quelque chose, mais pas tout...
# :)
PostĂ© par HardShooter . ĂvaluĂ© Ă 10.
et tar c'est mieux que jamais ?
[^] # Re: :)
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 9.
Mieux vaut tar que gz
[^] # Re: :)
PostĂ© par Anonyme . ĂvaluĂ© Ă 2.
# Emacs, c'est toi ?
PostĂ© par Axioplase ıɄsâ (site web personnel) . ĂvaluĂ© Ă 10.
J'espÚre qu'il ne permet pas de lire ses emails, aller sur IRC, ni ed consulter un psy, sinon, ça sera encore un projet redondant...
[^] # Re: Emacs, c'est toi ?
PostĂ© par feth . ĂvaluĂ© Ă 2.
# Jâajoute unp
PostĂ© par Olivier (site web personnel) . ĂvaluĂ© Ă 6.
Donc unp toto.{zip, tar.gz, tar.bz2, tgz, rar, etc.} dĂ©compresse lâarchive dans le rĂ©pertoire courant. Normalement lancer unp sans rien donne la liste des formats supportĂ©s, mais ça ne fonctionne pas chez moi !
Jâentends dĂ©jĂ (si, si) les sirĂšne du « câest mieux de connaĂźtre chaque outil ». Certes. Mais moi je me contente dâavoir besoin de dĂ©compresser un fichier et pour mon usage unp est parfait.
Quoi quâil en soit, ça fait partie de mes indispensables de la console (avec autojump, bien entendu, puisquâon vous dit quâil faut utiliser autojump !)
[^] # Re: Jâajoute unp
PostĂ© par alexissoft . ĂvaluĂ© Ă -10.
Puis fais gaffe hein, ensuite t'as un .zip, lĂ c'est unzip tout court. Mais j'admets, c'est peut-ĂȘtre trop d'un coup lĂ .
[^] # Re: Jâajoute unp
PostĂ© par zebra3 . ĂvaluĂ© Ă 9.
Article Quarante-Deux : Toute personne dĂ©passant un kilomĂštre de haut doit quitter le Tribunal. -- Le Roi de CĆur
[^] # Re: Jâajoute unp
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 10.
[^] # Re: Jâajoute unp
PostĂ© par feth . ĂvaluĂ© Ă 4.
[^] # Re: Jâajoute unp
PostĂ© par barmic . ĂvaluĂ© Ă 2.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: Jâajoute unp
PostĂ© par lasher . ĂvaluĂ© Ă 2.
[^] # Re: Jâajoute unp
PostĂ© par Tof . ĂvaluĂ© Ă 2.
Et en plus (et surtout), atools évite les Tarbomb.
J'ai une fonction shell qui va bien :
ax () {
if [ $# -eq 0 ]
then
echo 'Gimme a file to unpack !'
return
fi
if [ ! -x /usr/bin/atool ]
then
echo 'Need "atool"'
return
fi
if [ ! -x /bin/mktemp ]
then
echo 'Need "mktemp"'
return
fi
TMP=`mktemp /tmp/aunpack.XXXXXXXXXX`
atool -x --save-outdir=$TMP "$@"
DIR="`cat $TMP`"
[ "$DIR" != "" -a -d "$DIR" ] && cd "$DIR"
rm -i -rf $TMP
}
Et du coup, "ax toto.tgz" extrait toto.tgz et me place dans le répertoire créé.
(oui, c'est de la flemme)
[^] # Re: Jâajoute unp
PostĂ© par superna (site web personnel) . ĂvaluĂ© Ă 2.
aunpack monfichier.tar.gz
Et ça évite les tarbomb tout seul....
Et c'est inclus avec atool !
Et il y a aussi apack ;-)
[^] # Re: Jâajoute unp
PostĂ© par Tof . ĂvaluĂ© Ă 1.
aunpack est simplement un alias de "atool -x", mais la fonction magique (qui est donnée dans le man de atool) permet de se déplacer dans le répertoire créé (si un répertoire est créé).
# A la base
PostĂ© par Philippe M (site web personnel) . ĂvaluĂ© Ă 4.
Son rÎle était d'envoyer les fichiers sur la bande de la façon qui va bien.
Born to Kill EndUser !
[^] # Re: A la base
PostĂ© par barmic . ĂvaluĂ© Ă 0.
Tous les contenus que j'écris ici sont sous licence CC0 (j'abandonne autant que possible mes droits d'auteur sur mes écrits)
[^] # Re: A la base
PostĂ© par gnumdk (site web personnel) . ĂvaluĂ© Ă 3.
En effet, ce dernier note d'abord la taille du fichier à écrire puis le fichier, si la taille de ce dernier à changer entre temps, on risque de se retrouver avec des erreurs de redondance cyclique...
A notĂ© que j'ai pas vu ce genre d'erreur depuis un moment sous Linux, GNUtar corrige peut ĂȘtre le probleme.
# Re: cpio c'est mieux que tar
PostĂ© par tesiruna . ĂvaluĂ© Ă 1.
[^] # Re: cpio c'est mieux que tar
PostĂ© par đČ Tanguy Ortolo (site web personnel) . ĂvaluĂ© Ă 1.
[^] # Re: cpio c'est mieux que tar
PostĂ© par Ton chat. . ĂvaluĂ© Ă 0.
Suivre le flux des commentaires
Note : les commentaires appartiennent Ă celles et ceux qui les ont postĂ©s. Nous nâen sommes pas responsables.