Le . du shell

Résolu
Bonjour,

j'ai une commande que je n'arrive pas à interpréter :

ls -a|grep "^\..."

> il me retourne la liste des .f et ../

. veut-il dire aussi n'importe quel car ?

quelqu'un pourrait-il m'expliquer comment le shell interprète ce qu'il y a entre "" ?

4 réponses

  1. oui le point c'est n'importe quel caractère.

    dis-nous plutôt la chaîne que tu veux que ton grep renvoie
    1. Modérateur
      Salut,

      Lister toute chaine commençant par un point suivie de n'inmporte quel caractère pour les deux premiers.
      ^ = la chaine "^\..." doit se trouver en début de ligne
      \. = le caractère "\" protège le caractère "." (point) pour l'inclure dans la recherche
      .. = n'importe quel caractère des 2 premiers suivant le point
      1. ben c'etait juste pour savoir si le . par defaut ne voulait pas dire le repertoire courant. Mais comme c'est un meta car. de grep, vos reponses me convienne...

        En fait c'est pour trouver la commande qui va exclure ./ et ../ à tous les coups dans le resultat du ls

        C'est pas encore gagné :)

        a+
        1. Modérateur
          En fait c'est pour trouver la commande qui va exclure ./ et ../ à tous les coups dans le resultat du ls
          Ben "ls" tout court sans le paramètre "-a" devrait le faire ;-)))
          Si tu y tiens absolument :
          ls -a | grep "^[^\...]"
          ;-)
      2. Modérateur
        Plus simple
        ls -A
        --> listera les fichiers commençant par '.' mais pas '.' ni '..'