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 POSIX Discussion :

Recherche fichier Date modification précise


Sujet :

Shell et commandes POSIX

  1. #1
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut Recherche fichier Date modification précise
    Bonjour à toutes et à tous,

    Je cherche à sélectionner tous les fichiers qui ont une date précise de modification. Par exemple sélectionner les fichiers qui ont une date de modification au 1er mars. J'ai chercher un peu partout mais je n'ai pas trouvé. Auriez-vous une idée ? J'ai commencé mes recherches avec les commandes Find et Stat mais j'ai l'impression que la version de mon OS me bloque beaucoup.

    Serveur unix: SunOS nr0u0297 5.10 Generic_127111-11 sun4u sparc SUNW,Sun-Fire-V490

    Merci d'avance

  2. #2
    Expert confirmé
    Avatar de becket
    Profil pro
    Informaticien multitâches
    Inscrit en
    Février 2005
    Messages
    2 854
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Informaticien multitâches
    Secteur : Service public

    Informations forums :
    Inscription : Février 2005
    Messages : 2 854
    Par défaut
    Cette date est fixe ou c'est le rapport entre la date du jour et la date de modification des fichiers à sélectionner qui est fixe ?

  3. #3
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Bonjour,

    C'est la date de modification qui est fixe ( j'ai un fichier de paramètre avec tous les dates dedans ). Dans ce fichier Je vais avoir par exemple

    04/03/2013
    10/04/2013
    08/05/2013

    cette date correspond à la date de modif des fichier que je devrais selectionner

  4. #4
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Pour ceux qui ont un system à jour il y a bien cette solution

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    GNU/find latest version:
    find /path/to/dir -newermt "date"
    find /path/to/dir -newermt "Feb 07"
    find /path/to/dir -newermt "yyyy-mm-dd"
    ## List all files modified on given date
    find /path/to/dir -newermt yyyy-mm-dd ! -newermt yyyy-mm-dd -ls
    ### print all *.pl ###
    find /path/to/dir -newermt "yyyy-mm-dd" -print -type f -iname "*.pl"
    ou encore

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find . -name*.jpg” -printf%TY-%Tm-%Td\n’ |egrep2013-02-07″
    Mais je suis chez le client donc je n'ai pas cette toute dernière option..

  5. #5
    Rédacteur

    Avatar de ok.Idriss
    Homme Profil pro
    IS Consultant
    Inscrit en
    Février 2009
    Messages
    5 220
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2009
    Messages : 5 220
    Par défaut
    Bonjour.

    J'ai commencé mes recherches avec les commandes Find et Stat mais j'ai l'impression que la version de mon OS me bloque beaucoup.
    Pourrais-tu apporter plus de précisions à ce sujet ?

    Que renvoie par exemple : stat un_fichier ?

    As-tu des manpages sur ton OS ? Si oui, que contient la manpages de stat au sujet des dates ? (Si pas d'options particulières on peux tout de même parser la sortie que tu nous aura fournie plus haut).

    Au pire il sera également possible de parser le retour de ls (N_Bah va me taper dessus) . Mais en pipant la sortie de ls sur une boucle et non pas en faisant une sous exécution de ls (voir les très nombreuses discussions que nous avons eu à ce sujet).

    Bon d'abord voir ce qui ne va pas avec stat.

    Mais je suis chez le client donc je n'ai pas cette toute dernière option..
    ... problème de droits sur une commande ? Si oui laquelle ? Si non pour quel raison cela change quelque chose ?

    Cordialement,
    Idriss

  6. #6
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Bonjour

    Stat me renvoie du blanc....

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    serveur:/appli/> stat date.txt
     
    serveur:/appli/>
    Mais je suis chez le client donc je n'ai pas cette toute dernière option..
    C'est plus dans le sens où la dernière version de l'OS n'est pas installé ( elle date de 2007) et donc les dernières option de find par exemple n'existe pas et je n'ai pas possibilité de l'upgrader.

    Il y a toujours la solution de jouer avec des redirections, awk etc.. mais ça fait pas trop propre après si je n'ai pas d'autre solution

  7. #7
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Ce n'est pas forcément un problème de dernière version mais plutôt d'incompatibilité entre les outils Solaris (SunOs) et les outils GNU (qui ont généralement beaucoup plus d'options).

    Sous Solaris, on a réglé pas mal de problèmes (de compatibilité de nos scripts avec linux AIX et HPUX) en utilisant les commandes de /usr/xpg4/bin ... c'est peut-être une piste...

  8. #8
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    Citation Envoyé par ok.Idriss Voir le message
    Au pire il sera également possible de parser le retour de ls (N_Bah va me taper dessus)
    Ne pas oublier qu'en standard 'ls -l' affiche les fichiers qui ont plus de 6 mois avec l'année et ceux qui ont moins de 6 mois avec l'heure...

  9. #9
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 335
    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 : 4 335
    Par défaut
    Bonjour,

    Avec un peux de chance, voici une idée:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    touch -m -t 201301222359 time1
    touch -m -t 201301232359 time2
    find ./rep -newer time1 -a \! -newer time2
    ce qui donne:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    $ ls -l ./rep
    total 10
    -rwxr-xr-x 1 xxxxxx None  703 Jan 23 00:09 toto.xml
    -rw-r--r-- 1 xxxxxx None   48 Feb 22 02:18 ttofich1
    -rw-r--r-- 1 xxxxxx None 2085 Feb 22 02:49 ttofich2
    -rw-r--r-- 1 xxxxxx None 2087 Feb 22 02:34 ttofich2bak
     
    $ find ./rep -newer time1 -a \! -newer time2
    ./rep/toto.xml
     
    $
    Cordialement.

  10. #10
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Bonjour et merci c'est un début de solution.

    Je voudrais en fait mettre une date en "dur" pour ne prendre que les fichiers modifié à cette date. Par exemple je reçoit tous les jours un fichier dans un repertoire et à ce jour je voudrais prendre celui qui a été dépose le 6 mars et rien que celui-la

    Merci

  11. #11
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 335
    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 : 4 335
    Par défaut
    Dans ce cas, il suffit de modifier les 2 commandes touch pour positionner les 2 fichiers à la date de modification voulu:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    touch -m -t 201303052359 time1
    touch -m -t 201303062359 time2
    La date du touch est au format YYYYMMJJHHMM[SS].

    puis le find précédemment proposé fera le reste.
    Il faut juste que les fichier time1 et time2 ne soit pas dans l'arborescence de recherche du find sinon time2 sera remonté par le find.

    Cordialement.

  12. #12
    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
    Citation Envoyé par disedorgue Voir le message
    Il faut juste que les fichier time1 et time2 ne soit pas dans l'arborescence de recherche du find sinon time2 sera remonté par le find.
    On n'est pas obligé de donner un fichier en référence, d'après le man, on peut mettre directement une date :
    -newerXY référence
    Compare le timestamp du fichier courant avec la référence. L'argument référence
    est habituellement un nom de fichier (dans ce cas, un de ses timestamps est uti‐
    lisé pour les comparaisons), mais il peut aussi s'agir d'une chaîne donnant un
    temps absolu.
    X et Y sont des emplacements pour d'autres lettres, lettres qui
    indiquent quel horodatage de la référence est utilisé pour la comparaison.

  13. #13
    Expert confirmé Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 335
    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 : 4 335
    Par défaut
    Le problème, c'est que je n'ai pas le man du find qu'il utilise, donc je ne sais pas si l'option -newerXY existe dans sa version.
    J'essaye donc de rester le plus basic possible dans les commandes.

    Cordialement.

  14. #14
    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
    Citation Envoyé par disedorgue Voir le message
    Le problème, c'est que je n'ai pas le man du find qu'il utilise, donc je ne sais pas si l'option -newerXY existe dans sa version.
    J'essaye donc de rester le plus basic possible dans les commandes.

    Cordialement.
    Oups j'oublie toujours qu'on est chez Unix ici et non chez le Gnou

  15. #15
    Membre confirmé
    Homme Profil pro
    Data Ingenieur
    Inscrit en
    Mai 2006
    Messages
    133
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Data Ingenieur
    Secteur : Finance

    Informations forums :
    Inscription : Mai 2006
    Messages : 133
    Par défaut
    Hummm je viens de comprendre ou tu veux en venir. Faire 2 fichier sur le serveur et prendre les fichiers modifié entre ces 2 fichiers... je vais tester

  16. #16
    Expert confirmé
    Homme Profil pro
    Développeur informatique en retraite
    Inscrit en
    Avril 2008
    Messages
    2 102
    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 102
    Par défaut
    ou bien regarder les options de ton find... des fois qu'il sache le faire!

Discussions similaires

  1. Rechercher un fichier créé à une date (journée) précise
    Par bendesarts dans le forum Windows 8
    Réponses: 7
    Dernier message: 19/05/2015, 16h51
  2. [XL-2007] Besoin d'une macro qui va rechercher la date de modification d'un fichier
    Par bigsexy dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 11/09/2014, 14h31
  3. Recherche dans un fichier et modification
    Par kephy dans le forum Entrée/Sortie
    Réponses: 6
    Dernier message: 20/09/2005, 16h46
  4. [MFC] recupération date modif fichier
    Par Gothico dans le forum MFC
    Réponses: 7
    Dernier message: 21/01/2005, 18h47
  5. [ICS FtpClient] Date modif de fichier et listage de dossier
    Par Ingham dans le forum Composants VCL
    Réponses: 8
    Dernier message: 13/06/2004, 19h54

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