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 :

Compter le nombre de fichiers dans un répertoire dont je ne dispose pas du nom complet


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Points : 30
    Points
    30
    Par défaut Compter le nombre de fichiers dans un répertoire dont je ne dispose pas du nom complet
    Bonjour à tous,

    Voilà je suis débutant et j'ai du mal a combiner plusieurs commandes linux ensemble.

    J'aimerais créer un script qui exécute une commande (ex : maCommande -o nomDossier -> cette commande copie un dossier et son contenu dans un endroit spécifique, la copie de ce dossier portera le nom : nomDossier+DesCharactereAleatoire)


    Je sais : - ou ce dossier va être créer
    - une partie du nom du dossier
    - je sais compter le nombre d'element dans un dossier dont je connais le nom complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find /chemin/dossier/copié/nomDossierBlaBlaBla19494545454 -name \* | wc -l
    Ce que je veux :

    Créer un script qui compte le nombre d’élément dans le dossier d'origine, et qui le compare avec le dossier copié.
    Une fois que le nombre de fichier dans dossier d'origine est égal au nombre de fichier dans le dossier copié : affiche "terminé"


    Merci beaucoup de l'aide que vous voudrez bien m'apporter.

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 458
    Points
    13 458
    Par défaut
    Bonjour,

    pour copier un répertoire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp -R dossier_source dossier_destination
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Bonjour à tous,

    Voilà je suis débutant et j'ai du mal a combiner plusieurs commandes linux ensemble.

    J'aimerais créer un script qui exécute une commande (ex : maCommande -o nomDossier -> cette commande copie un dossier et son contenu dans un endroit spécifique, la copie de ce dossier portera le nom : nomDossier+DesCharactereAleatoire)
    J'ai bcp de mal à comprendre ce que tu veux...

    Je sais : - où ce dossier va être créé
    Peux-tu nous dire où ou comment tu le sais?

    - une partie du nom du dossier
    Quel dossier? L'origine? La copie?

    - je sais compter le nombre d'element dans un dossier dont je connais le nom complet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     find /chemin/dossier/copié/nomDossierBlaBlaBla19494545454 -name \* | wc -l
    C'est le dossier d'origine ou la copie?

    Ce que je veux :

    Créer un script qui compte le nombre d’élément dans le dossier d'origine, et qui le compare avec le dossier copié.
    Une fois que le nombre de fichier dans dossier d'origine est égal au nombre de fichier dans le dossier copié : affiche "terminé"
    Pourquoi? La copie est asynchrone?

  4. #4
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Points : 30
    Points
    30
    Par défaut
    Tout d'abord merci de vos réponses et je m'excuse si je me suis mal expliqué !


    Citation Envoyé par Flodelarab Voir le message
    Bonjour,

    pour copier un répertoire:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cp -R dossier_source dossier_destination
    Je ne cherche pas à copier un répertoire.

    en faite j'utilise un outil interne via une commande qui va :
    -récupérer un dossier "dossierSource" donné en argument (dont je connais le nom exacte et l'emplacement)
    -générer un nouveau répertoire (dont je ne connais que le début du nom) dans un autre emplacement (que je connais ex : /cheminAbsolu/nouveauDossierBlablablabla).

    -Ce Nouveau dossier "nouveauDossierBlablablabla" comportera les fichiers qui sont dans "dossierSource", mais qui ont été modifié.


    J'aimerais donc créer un script qui ne rend pas la main tant que les copies n'ont pas tous été entièrement traité.

    Est-ce plus clair ?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 549
    Points : 19 378
    Points
    19 378
    Par défaut
    récupérer un dossier
    terminologie imagée, mais imprécise.
    générer un nouveau répertoire (dont je ne connais que le début du nom)
    comment créer un dossier dont une ne connaît pas le nom complet ?
    Ce Nouveau dossier comportera les fichiers [...] qui ont été modifié.
    comment identifies-tu ces fichiers modifiés ?

    je vais être un peu dur, mais quand «bé veu d' lo», je ne comprend pas si bébé veut de l'eau, ou du lolo :/

    admettons, tu veux
    • lister les fichiers modifiés (comment sont-ils identifiés ?) dans un répertoire R (y existe-t-il des sous-répertoires où chercher ces fichiers ?)
    • copier les fichiers listés dans un autre répertoire (qu'il faut créer avec un nom...) sous un répertoire R'
    • quand la copie est terminée, afficher un message


    il faut être précis ! la programmation ne se satisfait pas d'à peu près
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  6. #6
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    Tout d'abord merci de vos réponses et je m'excuse si je me suis mal expliqué !

    J'aimerais donc créer un script qui ne rend pas la main tant que les copies n'ont pas tous été entièrement traité.

    Est-ce plus clair ?
    Non. En tout cas, pas pour moi.
    Désolé de ne pouvoir t'aider.

  7. #7
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Points : 30
    Points
    30
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    terminologie imagée, mais imprécise.
    comment créer un dossier dont une ne connaît pas le nom complet ?
    comment identifies-tu ces fichiers modifiés ?

    je vais être un peu dur, mais quand «bé veu d' lo», je ne comprend pas si bébé veut de l'eau, ou du lolo :/

    admettons, tu veux
    • lister les fichiers modifiés (comment sont-ils identifiés ?) dans un répertoire R (y existe-t-il des sous-répertoires où chercher ces fichiers ?)
    • copier les fichiers listés dans un autre répertoire (qu'il faut créer avec un nom...) sous un répertoire R'
    • quand la copie est terminée, afficher un message


    il faut être précis ! la programmation ne se satisfait pas d'à peu près

    Vous concentrez votre attention au mauvais endroit. Je n'ai jamais dit que je voulais lister, ni copié ni quoi que ce soit. J'ai dit que j'utilisais un outil qui faisait ca pour moi...

    Si vous prenez du recul, ce que j'ai demandé est simple :

    je veux une commande linux qui fait a peut pret ca :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    nbrOrigine='find ~/myData/fichiers -name \* | wc -l'
    nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
     
    while [ nbrOrigine -ne nbrCopie ]
    do
    	nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
    done
    je ne souhaite qu'une seul chose. Remplacer cette ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
    par une ligne de commande qui ferait exactement la même chose mais sans (en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
    peut être en utilisant un grep ?
    J'aimerais donc compter le nombre de fichier (peut importe leur type, contenus etc...) présent dans un répertoire dont je ne connais que le début du nom.
    un peu comme si j'étais sur une console linux, et que je faisait un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    cd /transfer/fichiers + tab

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 101
    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 101
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par joks93440 Voir le message
    je ne souhaite qu'une seul chose. Remplacer cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
    par une ligne de commande qui ferait exactement la même chose mais sans (en rouge) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrCopie='find /transfer/fichiersCoded_deacb7e3-e508-4425-97e4-368b587b66fb -name \* | wc -l'
    Ben voilà! Quand tu veux, c'est mieux!

    En fait, dans le cas où /transfer/fichiers* ne ramène qu'un répertoire, tu voudrais quelque chose comme:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nbrCopie=$(find /transfer/fichiers* -name \* | wc -l)
    C'est bien ça?

  9. #9
    Nouveau membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2013
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2013
    Messages : 62
    Points : 30
    Points
    30
    Par défaut
    oui exactement ! c'était aussi simple que ca =)

    Merci beaucoup

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

Discussions similaires

  1. compter le nombre de fichier dans un répertoire
    Par fireit dans le forum Scripts/Batch
    Réponses: 2
    Dernier message: 27/03/2009, 20h15
  2. Réponses: 16
    Dernier message: 26/11/2008, 16h41
  3. Réponses: 1
    Dernier message: 19/06/2008, 17h28
  4. Réponses: 1
    Dernier message: 30/10/2007, 00h07
  5. compter le nombre de fichiers dans un répertoire !
    Par lehic dans le forum API, COM et SDKs
    Réponses: 1
    Dernier message: 20/11/2005, 17h59

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