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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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 : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2016
    Messages : 2
    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 confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 127
    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 : 28
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Étudiant

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

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

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

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 127
    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 : 46
    Localisation : France

    Informations forums :
    Inscription : Juillet 2004
    Messages : 2 472
    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  \;
    Toutes les vertus des hommes se perdent dans l’intérêt comme les fleuves se perdent dans la mer.
    N'oubliez pas de consulter les FAQ Linux et les cours et tutoriels Linux

  6. #6
    Expert confirmé
    Avatar de Jipété
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    11 127
    Détails du profil
    Informations personnelles :
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 11 127
    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.

  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
    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')-{} \;

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