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

Administration système Discussion :

Commande find et argument "mtime"


Sujet :

Administration système

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 153
    Par défaut Commande find et argument "mtime"
    Bonjour à tous,

    Suivant le man de la commande find, nous pouvons voir :

    http://pwet.fr/man/linux/commandes/find

    => -mtime n
    Fichier dont les données ont été modifiées il y a n*24 heures.

    Je fais un "ll" de mon répertoire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    slyz@slyz-ubuntu:~/Desktop$ ls -l
     
    -rw-rw-r--  1 slyz slyz   22715 2012-09-25 11:00 test1.ods
    -rw-rw-r--  1 slyz slyz   16227 2012-09-26 10:00 test2.pdf
    Je lance à 10h43 cette commande :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    slyz@slyz-ubuntu:~/Desktop$ find -type f -mtime +1
    Je demande donc tous les fichiers présents dans ce répertoire étant plus vieux que 24H (suivant le man). Pourtant aucun de ces deux fichiers ne s'affiche. Pourriez-vous me donner une explication ?

    Merci d'avance à tous !

    Merci !

  2. #2
    Expert confirmé Avatar de frp31
    Homme Profil pro
    Ingénieur systèmes et réseaux
    Inscrit en
    Juillet 2006
    Messages
    5 196
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur systèmes et réseaux
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Juillet 2006
    Messages : 5 196
    Par défaut
    c'est pas comme ça

    mtime +2 c'est plus de 48heures
    mtime -2 c'est moins de 48 heures


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ touch -t 201206011022 toto
    $ find . -type f -mtime +1
    ./toto
    $ touch -t 201206011022 titi
    $ find . -type f -mtime +1
    ./titi
    ./toto
    $ find . -type f -mtime -1
    ./tutu
    ./20120601
    $
    tes deux fichiers ont donc moins de 24 heures tu demandes l'affichage de plus de 24 heures c'est normal que tu les vois pas.

  3. #3
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 153
    Par défaut
    Mhmmm

    Nous sommes le 27/09 à 11h45,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    -rw-rw-r-- 1 slyz slyz 22715 2012-09-26 10:00 test1.ods
    -rw-rw-r-- 1 slyz slyz 16227 2012-09-25 10:00 test2.pdf
    Tu es d'accord que les 2 fichiers ont plus de 24h ? test1 => 25h45 et test2 48h45.

    Pourtant,

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    slyz@slyz-ubuntu:~/Desktop/test$ find -type f -mtime +1
    ./test2.pdf

  4. #4
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    Salut,

    Extrait de man find :

    −mtime n

    Fichier dont les données ont été modifiées il y a n*24 heures. Consultez l’explication sur −atime pour comprendre comment les arrondis affectent l’interprétation des dates de dernière modification des fichiers.

    −atime n

    Dernier accès au fichier il y a n*24 heures. Lorsque find calcule le nombre de périodes de 24 heures depuis lequel le fichier a été accédé, la partie fractionnelle est ignorée. Ainsi, pour correspondre à −atime +1, un fichier doit avoir été accédé il y a au moins deux jours.
    Édit :

    D'ailleurs en prenant exemple sur cet exemple :

    find $HOME −mtime 0

    Rechercher les fichiers de votre répertoire personnel qui ont été modifiés lors des dernières vingt−quatre heures. Cette commande s’exprime de cette façon parce que la recherche utilise le résultat de la division entière par 24 de l’heure de dernière modification (la fraction horaire est donc perdue). Ce qui veut dire que pour correspondre à −mtime 0, un fichier doit avoir une antériorité de modification inférieure à 24 heures.
    Ceci find -type f -mtime +0 devrait faire l'affaire

  5. #5
    Membre confirmé
    Inscrit en
    Décembre 2009
    Messages
    153
    Détails du profil
    Informations forums :
    Inscription : Décembre 2009
    Messages : 153
    Par défaut
    ET BAM ! RTFM !

    Merci !

  6. #6
    Expert confirmé

    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    1 946
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Janvier 2011
    Messages : 1 946
    Par défaut
    De rien

    PS. J'ai édité mon précédent post pendant que tu répondais avec sûrement un début de solution...

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

Discussions similaires

  1. awk ou sed : Supprimer argument entre doubles quotes sur une ligne de fichier
    Par SuperJoker dans le forum Shell et commandes GNU
    Réponses: 5
    Dernier message: 18/05/2014, 21h08

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