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 :

Nombre fichiers /répertoires


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Nouveau candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut Nombre fichiers /répertoires
    Salut à tous

    J'aimerai faire un script qui me permettrai à son lancement de me donner le nombre de tout les répertoires et fichiers qui se trouvent dans mon répertoire courant.

    Je m'explique: je suis dans le répertoire /offres où se trouvent plusieurs dossiers d'affaire. Lorsque je lancerai mon petit programme dans mon répertoire courant (ici /offres), je saurais, pour chaque affaires contenu dans ce répertoire, le nombre de fichiers et de répertoires qu'ils contiennent (et si possible même la taille de répertoire de chaque affaires.)

    J'aimerai que le résultat soit envoyé dans un fichier qui contiendra pour chaque ligne le nom du répertoire d'affaire avec son nombre de répertoire et de fichier ainsi que sa taille.
    Nom_daffaire | Nbre_rép | Nbre_fichiers | taille
    Je pense qu'il faudrait une boucle for avec la commande find pour compter le nombre de fichiers et de répertoires.. (find . -type d | wc -l et find . -type f | wc -l) et la redirection >> pour écrire le résultat dans un fichier. Mais j'ai bien du mal à contruire tout ça !!


    Je dois le faire assez rapidement
    Si vous pouvez m'aider, me donner une trame ou autre, je suis partante

    Merci

  2. #2
    Membre chevronné Avatar de KindPlayer
    Profil pro
    Inscrit en
    Février 2007
    Messages
    471
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 471
    Par défaut
    Tu es sur la bonne voie en tout cas. Tu peux te baser sur qq chose de ce genre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
     
    for REP_AFFAIRE in $(ls -l | grep ^d | awk '{print $NF}')
    #boucle sur la liste des repertoires d'affaire du repertoire /offres
    do
       SIZE=0
       nb_files=0
       nb_rep=$(find $REP_AFFAIRE -type d | wc -l)
       liste_files=$(find $REP_AFFAIRE -type f )
       for file in $(liste_files)
       do 
           let SIZE+=$(ls -l $file | awk '{print $5}')
           let nb_files+=1
       done
       echo "$REP_AFFAIRE  | $nb_rep | $nb_files  | $SIZE" >>out.txt
    done
    Il pourra etre utile de rediviser la taille par 1024 pour l'avoir en Ko. Tu peux egalement utiliser printf pour formater la sortie un peu mieux -->man printf

  3. #3
    Nouveau candidat au Club
    Inscrit en
    Août 2008
    Messages
    2
    Détails du profil
    Informations forums :
    Inscription : Août 2008
    Messages : 2
    Par défaut
    Merci pour ta réactivité
    Je vais tester tout ça

Discussions similaires

  1. [C] Nombre Fichier dans un répertoire
    Par Henri dans le forum Windows
    Réponses: 2
    Dernier message: 28/07/2006, 11h07
  2. [C#]Folder tree view et fichier/répertoire caché
    Par bilb0t dans le forum Windows Forms
    Réponses: 5
    Dernier message: 02/02/2006, 16h46
  3. [MFC] zipper un fichier/répertoire
    Par r0d dans le forum MFC
    Réponses: 2
    Dernier message: 06/05/2005, 18h10
  4. Comment savoir si un fichier/répertoire est en lecture seule
    Par Guigui_ dans le forum Général Python
    Réponses: 3
    Dernier message: 29/12/2004, 16h05
  5. Réponses: 5
    Dernier message: 06/03/2003, 13h27

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