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 :

[SHELL] Trouver un fichier et y accéder


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut [SHELL] Trouver un fichier et y accéder
    Bonjour,

    J'ai un petit soucis depuis quelques jours..

    J'écris un script shell dans lequel j'ai besoin de renommer un fichier (sachant que je ne suis pas censé savoir où se trouve le fichier).

    Exemple je souhaite renommer fichier.log en YYYY-MM-DD-fichier.log

    Pour cela j'ai pensé à utiliser find puis mv mais comme je ne me trouve pas dans le dossier en question c'est compliqué de renommer le fichier comme je souhaite le faire.

    Quelqu'un a une idée ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 917
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 917
    Points : 15 352
    Points
    15 352
    Par défaut
    Yop !
    Citation Envoyé par Mumas97 Voir le message
    Pour cela j'ai pensé à utiliser find puis mv mais comme je ne me trouve pas dans le dossier en question c'est compliqué de renommer le fichier comme je souhaite le faire.

    Quelqu'un a une idée ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    updatedb
    locate fichier.log
    Faut voir...

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Novembre 2016
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 27
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    Points : 1
    Points
    1
    Par défaut
    Salut !

    A quoi sert la commande updatedb pcq elle fonctionne pas pour moi

  4. #4
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 917
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 917
    Points : 15 352
    Points
    15 352
    Par défaut
    Citation Envoyé par Mumas97 Voir le message
    Salut !

    A quoi sert la commande updatedb pcq elle fonctionne pas pour moi
    pcq ?
    C'est du sms, ça ? Rappel : il est interdit sur ce forum (voir les règles), sans doute parce qu'il ne passe pas les traducteurs utilisés par les lecteurs étrangers pratiquant quand même le français. Merci pour eux.

    Et donc, updatedb sert à mettre à jour la base de données utilisée par locate.

  5. #5
    Modérateur
    Avatar de ggnore
    Profil pro
    Inscrit en
    Juillet 2004
    Messages
    2 472
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    Points : 4 029
    Points
    4 029
    Par défaut
    Si ton updatedb n'a pas eu lieu depuis qu'un nouveau fichier a été crée, ton locate ne fonctionnera pas.
    C'est pourquoi find c'est l'amour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name '*article*' -exec mv {}  ../backup  \;

  6. #6
    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
    Points : 5 849
    Points
    5 849
    Par défaut
    Citation Envoyé par Mumas97 Voir le message
    Exemple je souhaite renommer fichier.log en YYYY-MM-DD-fichier.log

    Pour cela j'ai pensé à utiliser find puis mv
    Bonne idée!

    mais comme je ne me trouve pas dans le dossier en question c'est compliqué de renommer le fichier comme je souhaite le faire.
    L'option "execdir" de "find" sert précisément pour ce cas, car elle exécute la commande qui suit en se plaçant dans le répertoire contenant la cible {}:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name 'fichier.log' -execdir mv {} $(date '+%Y-%m-%d')-{} \;

  7. #7
    Expert éminent sénior
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    10 917
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 10 917
    Points : 15 352
    Points
    15 352
    Par défaut
    Citation Envoyé par ggnore Voir le message
    Si ton updatedb n'a pas eu lieu depuis qu'un nouveau fichier a été créé, ton locate ne fonctionnera pas.
    C'est pourquoi find c'est l'amour.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    find ./ -name '*article*' -exec mv {}  ../backup  \;
    C'est pourquoi je l'avais placé juste avant le locate, sous-entendu quand on veut utiliser locate on utilise d'abord updatedb :

    Citation Envoyé par Jipété Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    updatedb
    locate fichier.log
    Faut voir...
    Sans aucunement rejeter la solution avec find, bien sûr, mais question mémorisation de la ligne de commande y a pas photo,

    Pi utiliser updatedb une fois par semaine, ça prend une poignée de secondes, alors ça va.

  8. #8
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 721
    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 721
    Points : 31 044
    Points
    31 044
    Billets dans le blog
    1
    Par défaut
    Bonjour
    Citation Envoyé par Jipété Voir le message
    Pi utiliser updatedb une fois par semaine, ça prend une poignée de secondes, alors ça va.
    Surtout que généralement il est inclus dans le cron donc on n'a même pas à y penser...

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 588
    Points : 19 472
    Points
    19 472
    Par défaut
    et entre deux mises à jour, ne créez pas trop de fichiers, voire aucun, ça vous évitera de devoir penser à mettre la base à jour avant d'appeler locate.

Discussions similaires

  1. Bash Trouver le fichier le plus anciennement accéder
    Par mohaskh dans le forum Shell et commandes GNU
    Réponses: 7
    Dernier message: 22/11/2015, 12h11
  2. [CR9] Trouver le fichier d'aide en FR
    Par Joleroy dans le forum SAP Crystal Reports
    Réponses: 1
    Dernier message: 13/09/2004, 14h20
  3. Shell - Merge de fichiers
    Par tesla dans le forum Linux
    Réponses: 4
    Dernier message: 29/06/2004, 02h10
  4. Commande en shell -- Sur les fichiers
    Par OrangeBud dans le forum Linux
    Réponses: 8
    Dernier message: 18/05/2004, 13h13
  5. Trouver un fichier contenant une chaine ?
    Par narmataru dans le forum Linux
    Réponses: 2
    Dernier message: 29/04/2004, 10h49

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