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 :

[bash] Problème commande find


Sujet :

Shell et commandes GNU

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyste d'exploitation
    Inscrit en
    octobre 2021
    Messages
    20
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Analyste d'exploitation

    Informations forums :
    Inscription : octobre 2021
    Messages : 20
    Points : 13
    Points
    13
    Par défaut [bash] Problème commande find
    bonjour

    j'utilise la command find pour afficher que les fichiers de +15 jours j'utilise la combinaison suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $repertory -type f -name "*.mgt" -ctime +15 -exec ls -altr "{}" \;
    lorsque j'exécute la commande je m'aperçois que résultat ne m'affiche aucun fichiers au delà de 15 jours alors que j'en ai pourtant datant du mois de janvier de cette année ...

    je ne comprends quel est le souci

    pouvez-vous me renseigner

    merci

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

    Informations forums :
    Inscription : février 2008
    Messages : 6 695
    Points : 17 379
    Points
    17 379
    Par défaut
    je ne sais pas.
    par contre, ta commande ls est inefficace, parce qu'elle ne peut pas trier UN fichier (c'est ce que passe \; à -exec : un fichier à la fois).
    utilise plutôt +.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    3 909
    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 : 3 909
    Points : 11 486
    Points
    11 486
    Par défaut
    En générale, sous linux (en fait plus spécifique au type de FS), la ctime n'existe pas vraiment, c'est plutot du genre ctime=mtime.
    Cordialement.

  4. #4
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    6 695
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 6 695
    Points : 17 379
    Points
    17 379
    Par défaut
    ah bon !?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    $ > /tmp/fichier
    $  stat --printf 'modifTime  : %y\nchangeTime : %z\n' /tmp/fichier
    modifTime  : 2021-10-22 15:01:58.328666526 +0200
    changeTime : 2021-10-22 15:01:58.328666526 +0200
    $ chmod +x /tmp/fichier
    ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $  stat --printf 'modifTime  : %y\nchangeTime : %z\n' /tmp/fichier
    modifTime  : 2021-10-22 15:01:58.328666526 +0200
    changeTime : 2021-10-22 15:02:13.391912334 +0200
    --
    edit :
    je corrige. Bien sûr, lors de la création du fichier les dates de dernières modification et changement sont les mêmes !
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  5. #5
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    3 909
    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 : 3 909
    Points : 11 486
    Points
    11 486
    Par défaut
    Et c'est quoi la différence avant et après le chmod ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ touch xx
    $ stat xx
      Fichier*: xx
       Taille*: 0         	Blocs*: 0          Blocs d'E/S*: 4096   fichier vide
    Périphérique*: 816h/2070d	Inœud*: 12589601    Liens*: 1
    Accès*: (0664/-rw-rw-r--)  UID*: ( 1000/disedorgue)   GID*: ( 1000/disedorgue)
    Accès*: 2021-10-22 19:25:31.588024800 +0200
    Modif.*: 2021-10-22 19:25:31.588024800 +0200
    Changt*: 2021-10-22 19:25:31.588024800 +0200
      Créé*: -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ chmod +x xx
    $ stat xx
      Fichier*: xx
       Taille*: 0         	Blocs*: 0          Blocs d'E/S*: 4096   fichier vide
    Périphérique*: 816h/2070d	Inœud*: 12589601    Liens*: 1
    Accès*: (0775/-rwxrwxr-x)  UID*: ( 1000/disedorgue)   GID*: ( 1000/disedorgue)
    Accès*: 2021-10-22 19:25:31.588024800 +0200
    Modif.*: 2021-10-22 19:25:31.588024800 +0200
    Changt*: 2021-10-22 19:27:20.354905063 +0200
      Créé*: -
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    $ touch xx
    $ stat xx
      Fichier*: xx
       Taille*: 0         	Blocs*: 0          Blocs d'E/S*: 4096   fichier vide
    Périphérique*: 816h/2070d	Inœud*: 12589601    Liens*: 1
    Accès*: (0775/-rwxrwxr-x)  UID*: ( 1000/disedorgue)   GID*: ( 1000/disedorgue)
    Accès*: 2021-10-22 19:27:59.251098413 +0200
    Modif.*: 2021-10-22 19:27:59.251098413 +0200
    Changt*: 2021-10-22 19:27:59.251098413 +0200
      Créé*: -
    Ce qui est dommage, c'est que sur ext4, la date de création existe mais les outils ne l'exploitent pas:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    $ sudo debugfs -R 'stat <12589601>' /dev/sdb6
    Inode: 12589601   Type: regular    Mode:  0775   Flags: 0x80000
    Generation: 902569626    Version: 0x00000000:00000001
    User:  1000   Group:  1000   Project:     0   Size: 0
    File ACL: 0
    Links: 1   Blockcount: 0
    Fragment:  Address: 0    Number: 0    Size: 0
     ctime: 0x6172f49f:3bddd4b4 -- Fri Oct 22 19:27:59 2021
     atime: 0x6172f49f:3bddd4b4 -- Fri Oct 22 19:27:59 2021
     mtime: 0x6172f49f:3bddd4b4 -- Fri Oct 22 19:27:59 2021
    crtime: 0x6172f40b:8c322f80 -- Fri Oct 22 19:25:31 2021
    Size of extra inode fields: 32
    Inode checksum: 0x944261d9
    EXTENTS:
    Lui, ce qui l’intéresse, c'est la date de création à priori.
    Cordialement.

  6. #6
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    6 695
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 6 695
    Points : 17 379
    Points
    17 379
    Par défaut
    Et c'est quoi la différence avant et après le chmod ?
    je me suis trompé au recopiage - je corrige.
    bien sûr, lors de la création du fichier les dates de dernières modification et changement sont les mêmes !

    a priori, on ne sait pas. Tout ce qu'on, peut dire, c'est qu'il utilise ctime.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  7. #7
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    3 909
    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 : 3 909
    Points : 11 486
    Points
    11 486
    Par défaut
    Mouais, le ls -altr affiche par défaut le ctime ?
    Cordialement.

  8. #8
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    février 2008
    Messages
    6 695
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : février 2008
    Messages : 6 695
    Points : 17 379
    Points
    17 379
    Par défaut
    il utilise le ctime pour sélectionner les fichiers, dont il veut afficher les caractéristiques avec ls -altr.
    il ne dit pas qu'il veut afficher le ctime.
    .
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  9. #9
    Responsable Systèmes


    Homme Profil pro
    Technicien maintenance
    Inscrit en
    août 2011
    Messages
    14 880
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Technicien maintenance
    Secteur : High Tech - Matériel informatique

    Informations forums :
    Inscription : août 2011
    Messages : 14 880
    Points : 34 632
    Points
    34 632
    Par défaut
    En générale, sous linux (en fait plus spécifique au type de FS), la ctime n'existe pas vraiment, c'est plutot du genre ctime=mtime.
    Pour les FS ext, il y a les options de montage suivantes :
    - atime : Mets à jour la date de dernier accès
    - noatime : l'inverse
    - relatime : met à jour la date de dernier accès seulement si date plus ancienne que la date de dernière modification

    Je crois que le comportement par défaut est relatime.
    Pour les autres FS, je pense que c'est valable si les champs sont gérés.

    Activer -atime a un impact sur les perfs
    Ma page sur developpez.com : http://chrtophe.developpez.com/ (avec mes articles)
    Mon article sur le P2V, mon article sur le cloud
    Consultez nos FAQ : Windows, Linux, Virtualisation

  10. #10
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    décembre 2012
    Messages
    3 909
    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 : 3 909
    Points : 11 486
    Points
    11 486
    Par défaut
    Citation Envoyé par N_BaH Voir le message
    il utilise le ctime pour sélectionner les fichiers, dont il veut afficher les caractéristiques avec ls -altr.
    il ne dit pas qu'il veut afficher le ctime.
    Citation Envoyé par vbcasimir35 Voir le message
    bonjour
    lorsque j'exécute la commande je m'aperçois que résultat ne m'affiche aucun fichiers au delà de 15 jours alors que j'en ai pourtant datant du mois de janvier de cette année ...
    OK, il ne le dit pas.

    Mais, c'est un peu comme le fermier qui fait ces comptes:
    J'ai vendu 5 pommes et ramassé 10 choux, donc il me reste 5 bananes
    Cordialement.

  11. #11
    Membre régulier
    Homme Profil pro
    sans
    Inscrit en
    juillet 2019
    Messages
    87
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : sans

    Informations forums :
    Inscription : juillet 2019
    Messages : 87
    Points : 79
    Points
    79
    Par défaut
    Citation Envoyé par vbcasimir35 Voir le message
    bonjour

    j'utilise la command find pour afficher que les fichiers de +15 jours j'utilise la combinaison suivante

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find $repertory -type f -name "*.mgt" -ctime +15 -exec ls -altr "{}" \;
    lorsque j'exécute la commande je m'aperçois que résultat ne m'affiche aucun fichiers au delà de 15 jours alors que j'en ai pourtant datant du mois de janvier de cette année ...

    je ne comprends quel est le souci

    pouvez-vous me renseigner

    merci
    Bonsoir,
    j'ai testé ceci qui semble fonctionner:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find untest/ -name "*" -type f -cmin +1 | xargs ls -al
    je lance la commande dans le répertoire parent de 'untest' (attention). De plus, j'utilise cmin car dans mon répertoire test, vu que nouveau, c'est plus pratique.
    attention: car si on fait par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    find untest/ -name "*" -type f -ctime +15 | xargs ls -al | wc -l ; echo "***" ; ls -al . | wc -l
    31
    ***
    31
    total 20
    drwxr-xr-x  5 noob noob 4096 nov.  27 16:59 .
    drwxr-xr-x 11 noob noob 4096 nov.  27 17:36 ..
    drwxr-xr-x  2 noob noob 4096 nov.  27 16:59 tata
    drwxr-xr-x  2 noob noob 4096 nov.  27 16:59 toto
    drwxr-xr-x  2 noob noob 4096 nov.  27 16:59 tutu
    31 c'est le nombre de fichiers que renvoie ls -al . j'en déduis que si aucun fichier de +15 (ctime), find ne liste pas le répertoire passé, mais le répertoire d'où est lancé find.
    Étrange ....

Discussions similaires

  1. Problème commande find
    Par alien6390 dans le forum Shell et commandes GNU
    Réponses: 15
    Dernier message: 14/04/2015, 10h45
  2. [bash] getopt + commande find = KO
    Par malgashe120 dans le forum Shell et commandes GNU
    Réponses: 2
    Dernier message: 26/03/2014, 15h03
  3. [SED+boucle] problème commande bash
    Par Amenos dans le forum Applications et environnements graphiques
    Réponses: 2
    Dernier message: 14/05/2010, 15h44
  4. Scripts BASH &amp; commande Find
    Par GoodWear dans le forum Administration système
    Réponses: 2
    Dernier message: 09/10/2009, 10h25
  5. Shell sh : problème de résultat de la commande find
    Par frenchwill dans le forum Solaris
    Réponses: 2
    Dernier message: 07/08/2008, 09h41

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