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 :

Script Shell : lister tous les fichiers d'un r�pertoire et sous r�p


Sujet :

Shell et commandes GNU

  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Par d�faut Script Shell : lister tous les fichiers d'un r�pertoire et sous r�p
    Bonjour,

    je pensais trouver la solution en faisant la recherche dans le forum. Mais non, donc je vous la pose.
    J'aimerais en fait savoir quels sont les fichiers de mon r�pertoire et sous r�pertoire qui contiennent le terme "toto" par exemple.
    J'imagine qu'il faut faire un grep avec un pipe. Mais ce que je ne sais pas faire c'est parcourir tous les fichiers et ses r�pertoires. J'ai plus mes cours de fac

    Merci d'avance.
    RL.

  2. #2
    Membre Expert
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ing�nieur s�curit� & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur s�curit� & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Par d�faut
    Bonjour,

    man ls n'aurais pas �t� une mauvaise id�e tout de m�me.

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Par d�faut
    Bonjour Anthony,

    merci pour l'option -R. Ca me permets de parcourir la liste des fichiers du r�pertoire. Mais je n'arrive pas � combiner le grep et ls -Rl avec le pipe. ca ne me retourne rien du tout.

    As-tu une id�e ?

  4. #4
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Par d�faut
    Opppsm je viens de trouver .
    Merci

  5. #5
    Membre Expert
    Avatar de Anthony.Desvernois
    Homme Profil pro
    Ing�nieur s�curit� & risque
    Inscrit en
    Juin 2007
    Messages
    1 489
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur s�curit� & risque
    Secteur : Finance

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 489
    Par d�faut
    C'est tr�s tr�s bizarre, quel shell utilises-tu ? Quel version de grep ? Normalement, le pipe redirige sa sortie sur le grep, et le grep prend donc en entr�e la sortie du ls et le param�tre * est donc inutile... Surprenant que cela te donnes les bons r�sultats.

  6. #6
    Membre confirm�
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    111
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 111
    Par d�faut
    La version du noyau est 2.6.16 ... GNU/Linux.

    En tout cas, une autre chose que j'ai remarqu�. C'est que j'ai d� bidouill� pour avoir � peu pr�s ce que je veux. C'est � dire des r�pertoires peuvent contenir plusieurs fichiers de m�me noms, le grep ne se fait que sur l'un des deux ... ou quelque chose comme �a. Du coup j'ai fait du semi automatique . Mais c'est pas grave je m'en sors quand m�me.

  7. #7
    Membre �prouv�
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> | xargs grep "toto"
    oui, j'aime bien r�pondre aux sujets r�solus :p

  8. #8
    Membre chevronn� Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur Unix/Linux
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> | xargs grep "toto"
    Le xargs n'est pas obligatoire dans ce cas l�

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> | grep "toto"
    ou pour �viter le pipe:

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> -name *toto*

  9. #9
    Membre �prouv�
    Homme Profil pro
    Inscrit en
    Avril 2004
    Messages
    91
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 45
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Avril 2004
    Messages : 91
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> | xargs grep "toto"
    Cherche tous les fichiers qui contiennent le toto � l'int�rieur du fichier
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> |  grep "toto"
    Cherche tous les fichiers qui contiennent le toto dans le nom du fichier

    Apr�s j'ai peut-�tre mal compris la question...

  10. #10
    Membre �m�rite Avatar de jmelyn
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Septembre 2007
    Messages
    703
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par d�faut
    � Leeloo:

    Attention, la commande find ci-apr�s n'est pas correcte.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> -name *toto*
    En effet, c'est le shell qui va interpr�ter *toto* et il va rechercher dans le r�pertoire courant: par exemple toto_1 et toto_2, puis il (le shell) va passer ces deux fichiers � la commande find qui ne cherchera que ces deux fichiers. Donc si toto_3 existe dans un sous-r�pertoire, il ne sera pas d�tect�.

    Pour que �a marche comme attendu, il faut des guillemets, simples ou doubles, et c'est la commande find qui g�rera le caract�re *.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    find <mon_repertoire> -name "*toto*"

  11. #11
    Membre chevronn� Avatar de Leeloo_Multiboot
    Profil pro
    Administrateur Unix/Linux
    Inscrit en
    Avril 2008
    Messages
    417
    D�tails du profil
    Informations personnelles :
    �ge : 38
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur Unix/Linux
    Secteur : A�ronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Avril 2008
    Messages : 417
    Par d�faut
    En effet, c'est le shell qui va interpr�ter *toto* et il va rechercher dans le r�pertoire courant: par exemple toto_1 et toto_2, puis il (le shell) va passer ces deux fichiers � la commande find qui ne cherchera que ces deux fichiers. Donc si toto_3 existe dans un sous-r�pertoire, il ne sera pas d�tect�.

    Pour que �a marche comme attendu, il faut des guillemets, simples ou doubles, et c'est la commande find qui g�rera le caract�re *.
    Merci pour la pr�cision jmelyn.

    Cependant, fait bizarre, les deux commandes me retournent exactement le m�me r�sultat (test�es avec des sous-sous-r�pertoire et des fichiers contenus dans ces sous-sous r�pertoires, dont les noms contiennent la cha�ne en question), comme si le shell n'interpr�tait pas...

  12. #12
    Membre �m�rite Avatar de jmelyn
    Homme Profil pro
    Administrateur syst�mes et r�seaux
    Inscrit en
    Septembre 2007
    Messages
    703
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 61
    Localisation : France

    Informations professionnelles :
    Activit� : Administrateur syst�mes et r�seaux

    Informations forums :
    Inscription : Septembre 2007
    Messages : 703
    Par d�faut
    Cr�e exactement la structure suivante
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    toto
      |
      +--toto_1
      +--tata
      +--titi
           |
           +toto_2
    Puis tape la commande
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    cd toto
    find . -name toto*
    ./toto/toto_1
    En effet, le shell transforme toto* en toto_1 qui est ensuite cherch� par la commande find. La commande r�elle est donc find . -name toto_1. Le r�sultat n'est pas celui escompt� puisqu'il manque le fichier toto_2 dans le sous r�pertoire titi. Maintenant si tu tapes
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     find . -name "toto*"
    ./titi/toto_3
    ./toto_1
    Les r�sultats sans guillements seront en g�n�ral faux et d�pendants du r�pertoire courant, o� se fait l'expansion de toto*.

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. R�ponses: 4
    Dernier message: 02/08/2011, 17h01
  2. Lister tous les fichiers ordinaires accessibles par tout utilisateur
    Par superjesus dans le forum Shell et commandes GNU
    R�ponses: 1
    Dernier message: 16/01/2008, 07h23
  3. Lister dans un tableau tous les fichiers d'un r�pertoire ?
    Par The Molo dans le forum G�n�ral JavaScript
    R�ponses: 4
    Dernier message: 17/10/2007, 12h22
  4. [Shell] Supprimer tous les fichiers sauf XX et YY
    Par Invit� dans le forum Linux
    R�ponses: 9
    Dernier message: 25/07/2007, 10h37
  5. R�ponses: 4
    Dernier message: 29/08/2006, 18h02

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