Cuando lo hago ls -l | grep ^d
, solo enumera los directorios en el directorio actual.
Lo que me gustaría saber es lo que hace el símbolo de intercalación ^
en la ^d
media?
command-line
grep
special-characters
Deslizamiento
fuente
fuente
ls */
, en cambio, lo que funcionará con o sin la lista larga (ls -l
) y sin necesidadgrep
(y, por lo tanto, es un poco más rápido) y es menos probable (quels -l *
) encontrarse con un problema de lista de argumentos demasiado largo (ya que solo coloca directorios en el comando línea). Por supuesto,find . -maxdepth 1 -type d
es aún mejor, ya que no satura tu línea de comando en absoluto.Respuestas:
La respuesta de Andy es correcta, como se ve en la página del manual:
La razón por la que funciona es la
-l
bandera quels
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 esd
para un directorio o-
para un archivofuente
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".
fuente