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. Modérateur
    Plus simple
    ls -A
    --> listera les fichiers commençant par '.' mais pas '.' ni '..'
    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
      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. oui le point c'est n'importe quel caractère.

        dis-nous plutôt la chaîne que tu veux que ton grep renvoie