IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Limiter le niveau d'arborescence des répertoires archivés


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Limiter le niveau d'arborescence des répertoires archivés
    Salut les gars,

    Voici un petit couac sur lequel je butte, après avoir fouiller les listes de discussions, les cours et tutoriels et tester des combinaisons de xargs et autres awk .

    Voici le contexte :
    find /RepertoireRacine/ -type f -mmin -$NbrsDeMinutesAnterieures | xargs tar cvf - {} | gzip > fichierDumpDesFichiersRecents.tar.gz

    les sorties recrachés par xargs sont des chemins absolus de fichiers du type :
    /RepertoireRacine/RepertoireSuite2/monfichierRecent.txt
    /RepertoireRacine/RepertoireSuite2/monfichierRecent2.txt
    /RepertoireRacine/RepertoireSuite2/monfichierRecent2.txt

    ce sur quoi je me retrouves donc avec une archive contenant les fichiers récéments modifiés ainsi que leurs répertoires respectifs, donc une arborescence comme :

    /RepertoireRacine/RepertoireSuite2 (quelque fichiers récents Ici par exemple)/RepertoireSuite3 (encore des fichiers)/RepertoireSuite4 etc...

    ce qui est bien vu qu'on a pas tout en vrac sous un repertoire because on conserve l'arbo, sauf que je souhaiterais qu'il ne crée ces répertoires qu'à partir du niveau que je lui donne, exemple :

    /RepertoireSuite3 (quelques fichiers)/RepertoireSuite4(quelques fichiers)/

    donc sans /RepertoireRacine/RepertoireSuite2...

    Voila voiloû, merci d'avance de vos dépannages et sans qu'il n'y ait besoin de modifier le contexte de commande si possible...


  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Suite plus clair
    Comme je n'ai pas été sur d'être sufisament clair je re-précise ici :
    Ma solution se définirai ainsi :
    -> Pouvoir obtenir dans l'archive de sortie tous les répertoires et sous répértoires inférieurs mais en ayant le pouvoir d'amputé la partie supérieure (en sortie, et non en amont de la commande donnée plus haut) du nombre de répertoires que je souhaites.

    Dans l'exemple :
    / (répertoire racine)
    /rep1
    /rep1/sous-rep11
    /rep1/soup-rep12
    /rep1/soup-rep13
    /rep2

    Je lance ma commande pour qu'il identifie les fichiers récements modifiés dans /rep1/ pour qu'il cherche donc aussi dans "sous-rep11, sous-rep12 et sous-rep13".
    Ainsi dans l'archive de sortie crée par tar il va me reconstituer physiquement cette arborescence sur le disque dur avec :

    /rep1
    /rep1/sous-rep11/(fichiers)
    /rep1/soup-rep12/(fichiers)
    /rep1/soup-rep13/(fichiers)

    MAIS je ne souhaites pas qu'il me crée physiquement le répertoire "/rep1" car je ne veux avoir dans mon archive que :
    /soup-rep11/(fichiers)
    /soup-rep12/(fichiers)
    /soup-rep13/(fichiers)

    Si j'obtiens cela, c'est j'ai donc que j'ai pû "amputé" la création de l'archive d'1 répertoire supérieur et j'ai réussi....

    C'est que je veux ça sachant que pour que TAR puisse archiver chaque fichier il lui faut absolument le chemin absolu de chacun de ces fichiers, ce qui tombe bien vu que c'est ce que Find lui donne à manger, des chemins de fichiers absolus comme :

    /rep1/sous-rep11/MonFichier1
    /rep1/sous-rep11/MonFichier2
    etc...
    donc TAR pas con, il va créer dans l'archive :

    /rep1/sous-rep11/ MonFichier1 et MonFichier2

    mais moi j'en veux pas de son "/rep1/" dans l'archive !

    Juste ca :
    /sous-rep11/ MonFichier1 et MonFichier2

    Voilà Voiloû, j'espère que mon besoin est mieux explicité :-) ainsi la solution se situe dans l'interaction entre "find" et "tar" que vers "find" seul.
    Si seulement cette option existait avec "tar" ca serait parfait, sauf que on ne peux pas dire : "Ne crée pas les n premiers dossiers de niveau supérieurs dans l'archive"


  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    62
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 62
    Points : 52
    Points
    52
    Par défaut Résolu
    CA y est résolu, en fait il falait d'abord se rendre dans le répertoire Racine, ce qui donne :

    cd /repertoireRacine/ ;

    find . -type f -mmin $minutes) | tar cvzf fichiers-recents.tar.gz -T - -C /repertoireRacine

    Le "find ." fesant toute la différence

  4. #4
    Rédacteur/Modérateur
    Avatar de troumad
    Homme Profil pro
    Enseignant
    Inscrit en
    Novembre 2003
    Messages
    5 597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Enseignant
    Secteur : Enseignement

    Informations forums :
    Inscription : Novembre 2003
    Messages : 5 597
    Points : 7 832
    Points
    7 832
    Par défaut
    Tu peux alors mettre la balise résolu !
    Modérateur Mageia/Mandriva Linux
    Amicalement VOOotre
    Troumad Alias Bernard SIAUD à découvrir sur http://troumad.org
    Mes tutoriels : xrandr, algorigramme et C, xml et gtk...

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/11/2010, 15h21
  2. Réponses: 6
    Dernier message: 01/09/2010, 11h33
  3. [Toutes versions] Recherche des macros dans une arborescence de répertoires.
    Par vincph dans le forum Microsoft Office
    Réponses: 1
    Dernier message: 08/07/2009, 23h07
  4. Arborescence des fichiers et répertoires d'un disque dur
    Par bennyben77 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 30/05/2008, 10h59
  5. [Arborescence des répertoires]
    Par JustAGphy dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 25/03/2004, 14h47

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo