Cuando lo hago ls -l | grep ^d
enumera solo directorios en el directorio actual.
Lo que me gustaría saber es qué hace el caret ^
en ^d
significa?
La respuesta de Andy es correcta, como se ve en la página del manual:
Anclaje
El símbolo de intercalación ^ y el signo de dólar $ son metacaracteres que coinciden respectivamente con la cadena vacía al principio y al final de una línea.
La razón por la que funciona es el -l
flag to ls
hace que use el formato de lista larga. Lo primero que se muestra en cada línea son los permisos legibles por humanos para el archivo, y el primer carácter de eso es d
para un directorio o -
para un archivo
Eso es una preocupación, no una zanahoria. Significa "comienzo de la línea". El grep solo coincide con líneas que comienzan con "d".