Retourner aux forums || Retourner au forum Programmation.c

Programmation.c : Comment lire un ficher taré sans "detarer"

Posté par shal () le 28 avril 2008
0
Bonjour,

Je dois stocker plusieurs gros fichiers dans un seul . évidement je pense a tar . Mais je dois aussi y avoir accès SANS "detarer" (ce serait trop lourd).

J'ai regardé libtar mais soit j'ai pas compris soit cela ne permet pas d'accéder au fichiers.

Connaissez-vous un moyen/librairie pour faire cela ?

Il n'y a pas besoin de compresser.

Toute autres alternative est la bienvenue, j'ai pas l'impression que je soit le premier a avoir ce genre de besoin.
Les fichiers sont gros (jusqu'au Giga) et je ne sais pas quel taille ils vont faire à la fin donc difficile de faire un structure dans un fichier et juste de simple fseek.

merci

> Lire le message (8 commentaires, moyenne: 2,4).  

Cette discussion est archivée, il n'est plus possible de laisser des commentaires.

Note : les commentaires appartiennent à ceux qui les ont postés. Nous n'en sommes pas responsables.

Dossier?

Posté par Gilles G. () le 28/04/2008 à 15:24. (lien). Évalué à 2.

Tout est dans le titre!
C'est bizarre de vouloir réunir des fichiers déjà très gros en un seul, non?

Si j'ai bien compris ...

Posté par Gérald (page perso, ) le 28/04/2008 à 15:31. (lien). Évalué à 4.

Tu veux pouvoir extraire de ton tarball un seul fichier sur les X qui y sont archivés ?

[binarym@gcolangelo]:/tmp/noobz% touch 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% tar cf plop.tar 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% rm 1 2 3 4
[binarym@gcolangelo]:/tmp/noobz% tar xf plop.tar 3
[binarym@gcolangelo]:/tmp/noobz% ls
3 plop.tar
[binarym@gcolangelo]:/tmp/noobz%

Pas très clair

Posté par Sébastien Koechlin () le 28/04/2008 à 15:53. (lien). Évalué à 3.

Ta demande n'est pas très claire; de quelle façon souhaites-tu pouvoir accéder au contenu de l'archive ?

Est-ce que tu veux pouvoir monter l'archive pour pouvoir accéder au contenu avec un shell ou un explorateur ? FUSE peut faire cela avec certains formats; Gnome & KDE viennent avec leurs propres solutions pour faire cela aussi.

Si c'est pour lire depuis un programme; il existe des librairies qui permettent d'accéder au contenu, comme celle que tu cites.

tar est un système prévu pour les archives sur bande. Les fichiers sont présents séquentiellement, et il n'existe aucun index. Il est nécessaire de parcourir tout le fichier pour en retrouver un particulier; ce qui n'est pas génial pour les performances.

zip est un format également très répandu qui contient un index à la fin du fichier; cela permet d'accéder à un fichier en particulier sans avoir à parcourir tout le fichier. A mon avis c'est bien plus adapté.

Il existe encore d'autres formats, cpio, ar... regarde ce que chacun propose, avec quelle facilité on manipule les archives et on accède aux contenus.

  • [^]Re: Pas très clair

    Posté par NeoX () le 28/04/2008 à 16:46. (lien). Évalué à 3.

    on peut meme penser au format iso qui se monte tres bien en loop

    tous les fichiers dans un dossier
    mkisofs dossier -o mon_fichier.iso

    puis
    mount -o loop mon_fichier.iso /mnt/mon_archive

    inconvenient :
    tu ne peux pas reecrire dedans.

    avantage :
    tu peux graver ce fichier iso sur un support cd/dvd en demandant de graver à partir d'une image de disque

    --
    Apprendre par les autres, c'est bien.
    Apprendre par soi-meme (RTFM, man, et notre ami google) c'est mieux
    • [^]Re: Pas très clair

      Posté par shal () le 28/04/2008 à 17:42. (lien). Évalué à 1.

      Merci pour cette idée.
      Elle me convient parfaitement. Je suis un peu bête de pas y avoir penser plus tôt. Mais j'étais tellement parti sur mon idée que c'était faisable avec tar.


      Désolé si ma demande était pas très claire.

    • [^]Re: Pas très clair

      Posté par shal () le 28/04/2008 à 17:57. (lien). Évalué à 1.

      Zut, il manque un truc a cette solution.

      En effet a la lecture on aura pas besoin de detarer l'archive pour avoir accès aux fichiers.
      par contre à la création il y aura une duplication de mes fichiers.
      Et comme cela se compte en giga, je vais avoir des pertes de performances.

      Je vais voir du coté de unionfs ou ceux utiliser par les liveCD

      • [^]Re: Pas très clair

        Posté par totof2000 () le 29/04/2008 à 22:15. (lien). Évalué à 2.

        par contre à la création il y aura une duplication de mes fichiers.

        C'est le cas pour n'importe quelle solution d'archivage .... (c'est d'ailleurs la raison d'être de l'archivage : dupliquer les informations pour avoir un état de celles-ci à un instant T)
        quand tu crée un CD par exemple tu peux créer une image iso sur ton disque, ou la graver directement, il y a toujours duplication d'informations. La question est de savoir ou elles seront dupliquées.

squashfs ?

Posté par gronk34t () le 29/04/2008 à 11:23. (lien). Évalué à 3.

Regarde du côté de squashfs, ça a l'air de répondre à ce que tu cherche : Une archive compressée, dans laquelle on peut naviguer en la montant. C'est un peu la même idée que l'image iso, la compression en plus !

Revenir en haut de page || Retourner aux forums || Retourner au forum Programmation.c