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

Posté par  .
Étiquettes : aucune
0
28
avr.
2008
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
  • # Dossier?

    Posté par  . É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  . É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  . É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  . É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
      • [^] # Re: Pas très clair

        Posté par  . É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  . É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  . É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  . É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 !

Suivre le flux des commentaires

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