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 :

Suppression d'une partie de l'arborescence [Débutant(e)]


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre chevronné
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Par défaut Suppression d'une partie de l'arborescence
    Bonjour,

    Je cherche à réorganiser des données. Un joli dessin vaut mieux qu'un long discours pour décrire la structure de mes données. Actuellement mes données sont organisées comme ça : Nom : schéma_dvpez.jpg
Affichages : 581
Taille : 13,1 Ko

    Chaque case sur le joli dessin que j'ai fait représente un dossier. Donc j'ai plusieurs niveaux de dossiers, le premier une année (de 2008 à 2010), le 2e le type de donnée (Pt, Tmin, Tmax), le 3e un nombre (1 à 50), le 4e un autre nombre (1 à 10). Ce dernier dossier contient quelques milliers de fichiers avec un nom unique.

    L'arborescence est trop complexe à mon goût et ne facilite pas du tout le traitement des données. Je voudrais réorganiser les données comme ça :
    Nom : schéma_dvpez2.jpg
Affichages : 482
Taille : 5,5 Ko

    C'est à dire que je voudrais donc fusionner les années mais aussi le dernier niveau. Comme les fichiers ont un nom unique, ça ne pose pas de problème de les mettre dans un même dossier.

    Ensuite il y a quelques contraintes : j'ai un très grand nombre de fichiers, au total près de 5 millions (oui rien que ça ). Je ne dispose pas d'espace supplémentaire pour faire beaucoup de copier-coller (je ne peux pas avoir 10 millions de fichiers temporairement). Accessoirement, je n'ai pas le droit de perdre des fichiers -> fausse manip et je massacre tout ce qui passe à ma portée !

    Je patauge, je ne sais pas comment procéder (j'ai même pas une ébauche de code à vous proposer cette fois...)

    Merci beaucoup à tous ceux qui se pencheront sur ce problème !

    PS : disque dur formaté en fat32. J'ai lu pas mal de choses divergentes sur le nombre de fichiers max que peut contenir un dossier. Est ce que ça peut être un problème ici ?

  2. #2
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    Bonjour,

    En fat32, tu as droit à 2^16 entrées par répertoire nom long compris, donc même si tu as un nombre de fichiers "équi-réparti" dans ton arborescence, tu dépasseras la capacité dans chaque répertoire:

    3*50=150
    5 000 000/150=33333,333
    2^16=65536

    Cela semble tenir, mais comme tu précises que tes fichiers ont un nom unique, je suppose que tu utilises des noms longs, on peut donc diviser au moins par 2 le nombre max par répertoire:
    65536/2=32768

    Petite précision: un nom court sous fat32 c'est 8+3 caractères, un fichier est toujours accessible par un nom court, la casse (minuscule/majuscule) n'est pas prise en compte.

    En conclusion: pour l'instant tu es bloqué par ton système de fichier.

  3. #3
    Membre chevronné
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Par défaut
    Merci beaucoup Disedorgue ! Oui tu as raison, ce sont des noms longs qui comportent environ 50 caractères.

    Bon, bon, alors je vais devoir revoir mes exigences à la baisse. Bon alors je pose à nouveau la question mais ce coup-ci on garde les dossiers années. Ça reviendrait à simplement fusionner les dossiers de 1 à 10 tout en bas de l'arborescence.

    3*3*50=450
    5000000/450=11111

    Donc c'est censé passer !

    Merci !

  4. #4
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 347
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 347
    Par défaut
    En fait, après une petite recherche sur le net, j'ai un doute sur la limitation du nombre de fichier possible dans un répertoire (celle-ci semble seulement limité par la taille de la partition, info ICI)

    Ce qui est sur, c'est qu'un nom de fichier de 50 caractères occupe 5 entrées...

    Comme tu sembles limité en espace disque, et avant de prendre le moindre risque, peut-être pourrais-tu exposer le pourquoi il te semble plus complexe de garder ton arborescence tel quel ?

  5. #5
    Membre chevronné
    Homme Profil pro
    Éternel universitaire
    Inscrit en
    Avril 2012
    Messages
    421
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Canada

    Informations professionnelles :
    Activité : Éternel universitaire

    Informations forums :
    Inscription : Avril 2012
    Messages : 421
    Par défaut
    Comme je l'ai dit dans le premier post, moi aussi je suis tout mêlé à propos du nombre limite de fichiers que peut contenir un dossier.

    Alors pourquoi je veux réorganiser ces données : ces données ont été extraite d'une base de données par une tierce personne. Cette personne les a organisé selon un arrangement qui a du sens pour elle. Comme ces données seront amenées à être réutilisées par d'autres personnes que moi, je voulais les réarranger selon une classification plus "neutre".
    Le problème majeur vient surtout de la classification entre les fichiers en bas de l'arborescence (ceux du dossier 1->10). Il y a en fait des fichiers qui sont dans le dossier 2 qui devraient appartenir au dossier 1, des fichiers du dossiers 3 qui devraient appartenir au 2, etc. Dernier point, d'un point de vue conceptuel, il me semble que ces fichiers ne devraient pas être séparés.

    Oui je suis peut être un peu pinailleur, mais je me dis que c'est aussi bien de faire la manip proprement une fois que de faire une pirouette informatique pas très élégante à chaque fois.

    Edit : pourquoi on aurait besoin d'espace supplémentaire pour faire ces changements ? Lorsqu'on renomme un dossier contenant des fichiers, tous les chemins de ces fichiers sont instantanément modifiés... par exemple, si je renomme mon dossier 2008 de l'exemple en 2999, ça se fait instantanément bien qu'il contienne plus de 1M de fichiers.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par thecrazydonut Voir le message
    Edit : pourquoi on aurait besoin d'espace supplémentaire pour faire ces changements ? Lorsqu'on renomme un dossier contenant des fichiers, tous les chemins de ces fichiers sont instantanément modifiés... par exemple, si je renomme mon dossier 2008 de l'exemple en 2999, ça se fait instantanément bien qu'il contienne plus de 1M de fichiers.
    Bonjour

    Oui tu as raison. Renommer un dossier dans un même FS revient à changer le nom de ce dossier dans le dossier qui le contient et se fait instantanément sans avoir besoin de place. Mais j'ai bien lu toute la discussion et nulle part il a été dit que t'aurais besoin d'espace supplémentaire.

    Perso dans une manip de ce genre, je commencerais par faire une sauvegarde intégrale de l'arborescence. Ca peut se faire dans un tar ou tgz selon la vitesse de ta machine et ton espace disque disponible et ça permet de revenir au point de départ si un truc cafouille. Puis je compterais soigneusement le nombre de fichiers pour pouvoir vérifier après coup si tout y est. Un find dossier_de_depart -type f -print|wc -l te donnera ce chiffre.

    PS: t'as rien dit à propos de la différence entre 2008/pt/1 et 2008/pt/50/1. Normalement, après fusion, le contenu des deux dossiers sera regroupé dans pt/1.
    PS2: on est dans le forum Linux. T'aurais pas moyen de transformer ton FS fat32 en FS de type ext(3/4) ??? Ca règlerait beaucoup de questions...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Suppression d'une partie du nom de l'onglet
    Par damien29 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/05/2011, 16h41
  2. suppression d une partie de l'url
    Par mustapha_aim dans le forum Langage
    Réponses: 2
    Dernier message: 15/07/2010, 22h09
  3. Suppression d'une partie ciblée d'une surface
    Par Kafkana dans le forum MATLAB
    Réponses: 0
    Dernier message: 20/05/2010, 09h10
  4. suppression d'une partie d'un champs
    Par ntahi dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/07/2007, 18h47
  5. suppression d'une partie de blat
    Par linalin dans le forum Bioinformatique
    Réponses: 15
    Dernier message: 03/04/2007, 08h53

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