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 :

Taille globale selon extension des fichiers


Sujet :

Shell et commandes GNU

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 241
    Par défaut Taille globale selon extension des fichiers
    Bonjour

    je cherche à faire un script qui me calcule sur un serveur (Debian) entier la taille (somme) globale des fichiers selon leur extension .
    Je pense tenir un début de script, avec un du | awk mais celui ci ne se fait pas de manière récursive, je dois me positionner dans chaque petit dossier pour l'avoir.
    Comment dois tourner mon script d'après vous ? dois je rajouter un find ? un ls ? ou y a t'il une option sur la récursivité sur la commande du ?

    Merci pour votre aide

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    Bonjour,

    sur les systèmes UNIX(-like) les extensions de fichiers ne sont pas très significatives.

    en codeur bash laborieux (), je positionnerais les options nullglob et globstar avec shopt pour lister les fichiers depuis la racine dans une boucle for, dans laquelle je traiterais avec un tableau associatif la sortie de file -b en incrémentant la valeur avec stat -c %s...
    ?
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Admettons que tu veuilles vraiment le faire par extension et non par type de fichier (comme proposé par N_BaH).

    As-tu une liste des extensions à traiter ou faut-il la déterminer?

    Si tu l'as, je ferais bêtement une boucle sur cette liste avec un find avec '-exec cat {} \+' (si j'ai bien compris ce (nouveau (pour moi)) feature) pipé avec un 'wc -c'.

  4. #4
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    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
    [~/Documents]$ find . -name "*.txt" -ls
    395151   16 -rw-r--r--   1 florian  florian     16314 mars 26 16:08 ./FCul/res.txt
    394902   24 -r--r--r--   1 florian  florian     23441 déc.  7  2004 ./appleII/kegs.0.91/CHANGES.txt
    394904   16 -r--r--r--   1 florian  florian     15145 déc.  7  2004 ./appleII/kegs.0.91/COPYING.txt
    394925    8 -r--r--r--   1 florian  florian      5666 déc.  7  2004 ./appleII/kegs.0.91/README.a2.compatibility.txt
    394926    4 -r--r--r--   1 florian  florian      3599 déc.  7  2004 ./appleII/kegs.0.91/README.compile.txt
    394927   48 -r--r--r--   1 florian  florian     46088 déc.  7  2004 ./appleII/kegs.0.91/README.kegs.txt
    394928   16 -r--r--r--   1 florian  florian     13324 déc.  7  2004 ./appleII/kegs.0.91/README.linux.partitions.txt
    394929    4 -r--r--r--   1 florian  florian      1386 déc.  7  2004 ./appleII/kegs.0.91/README.mac.txt
    394930    4 -r--r--r--   1 florian  florian      1840 déc.  7  2004 ./appleII/kegs.0.91/README.win32.txt
    395274   24 -rw-r--r--   1 florian  florian     22241 mars 28 16:46 ./Tpostvent.txt
    395275   36 -rw-r--r--   1 florian  florian     33454 mars 28 15:45 ./TventA.txt
    [~/Documents]$ find . -name "*.txt" -ls |awk '{x+=$7}; END{print x}'
    182498
    [~/Documents]$
    Il va sans dire que c'est la deuxième commande que je préconise en adaptant l'extension évidemment

  5. #5
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    même avec find quand je vois ls je grogne : find a une option printf, qui permet de n'afficher que les informations pertinentes; ici, la taille :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Total fichiers \".txt\": $(( $(find . -type f -iname "*.txt" -printf '+%s') ))"
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 840
    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 840
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    ...quand je vois ls je grogne
    Hum intéressant. Tu ne voudrais pas venir dîner chez moi mercredi prochain ? On est plusieurs. Tu pourrais nous parler du ls à travers les âges, des craintes qu'il suscite, des espoirs aussi d'un ls meilleur...

    Citation Envoyé par Flodelarab Voir le message
    Paradoxalement vous usâtes plus de caractères, très cher.
    Fort heureusement, la qualité comparée de deux scripts ne se mesure pas à la taille des instructions qu'il utilise
    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]

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 241
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    même avec find quand je vois ls je grogne : find a une option printf, qui permet de n'afficher que les informations pertinentes; ici, la taille :
    Code BASH : Sélectionner tout - Visualiser dans une fenêtre à part
    echo "Total fichiers \".txt\": $(( $(find . -type f -iname "*.txt" -printf '+%s') ))"
    Ta commande me donne un résultat à mon sens très proche de la réalité, en plus la casse (majuscule minuscule) n'est pas prise en compte.
    Merci

  8. #8
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Paradoxalement vous usâtes plus de caractères, très cher.

  9. #9
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 664
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 664
    Par défaut
    c'est du chipotage, ou on ne m'a pas bien instruit

    Jack-ft sort de ce pseudo !

    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  10. #10
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 103
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique en retraite

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 103
    Par défaut
    Citation Envoyé par Flodelarab Voir le message
    Paradoxalement vous usâtes plus de caractères, très cher.
    Citation Envoyé par N_BaH Voir le message
    c'est du chipotage, ou on ne m'a pas bien instruit
    Jack-ft sort de ce pseudo !
    Contrairement à W*nder (qui ne s'use que si l'on s'en sert), les caractères ne s'usent pas, même si l'on les utilise... (au contraire des touches du clavier!)
    En conséquence de quoi et bien que l'une des acceptions soit synonyme, j'eusse plutôt dit:
    "Paradoxalement vous utilisâtes plus de caractères, très cher."
    Ce qui, je vous l'accorde, utilise plus de caractères que l'anglicisme précédent...
    mais là, je commence à craindre de passer pour un chipoteur...

  11. #11
    Expert confirmé Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 293
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 293
    Par défaut
    Laissez les grands bretons boire leur eau chaude avec un nuage de lait et lisez ceci.
    La première définition cadre exactement. C'est du bon françoy. (Comme on dit au Vatican)

    Mais trêve de chipotage.

  12. #12
    Membre éclairé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    241
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 241
    Par défaut
    Merci pour vos réponses
    je vais les tester et vous donner mon avis
    Mais déjà, moi qui partait sur un du, je n'ai pas pris la bonne option

Discussions similaires

  1. <ice:inputFile> : filtrage selon l'extension des fichiers
    Par louzorios dans le forum Développement Web en Java
    Réponses: 0
    Dernier message: 27/02/2012, 14h43
  2. extensions des fichiers en C++
    Par cyrano_de_bergerac dans le forum C++
    Réponses: 7
    Dernier message: 28/06/2007, 20h40
  3. [VBA-W] Ajouter les extensions des fichiers
    Par dev81 dans le forum VBA Word
    Réponses: 4
    Dernier message: 02/05/2007, 14h54
  4. Extensions des fichiers
    Par C_C dans le forum Ruby on Rails
    Réponses: 4
    Dernier message: 13/11/2006, 22h45
  5. Réponses: 9
    Dernier message: 26/08/2006, 19h35

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