Listar SÓLO directorios en Bash

30 01 2008

Hoy haciendo un Shell Script me ha surgido la necesidad de hacer un listado de los directorios (y no ficheros) que hay en una determinada ruta.

Al parecer el comando ls no dispone de esta utilidad… cosa que me parece un poco extraña, pero he encontrado un modo de hacerlo con find.

$ find . -maxdepth 1 -type d

Incluso, para más comodidad te puedes hacer un alias:

$ alias lsdirs='find . -maxdepth 1 -type d'


Acciones

Información

5 respuestas

20 05 2008
minombresbond

probaste esto?

ls -F | grep /

-F agrega al final ‘*’ a los ejecutables y ‘/’ a los directorios
grep te entrega solo aquellos terminados en /
y asi lista solo directorios (con un / al final)

19 12 2008
Luis R. Hernández F.

Acabo de crear 2 alias, listar sólo archivos y listar sólo directorios:

alias d “ls -lrt | awk ‘/^[d]/’”
alias a “ls -lrt | awk ‘/^[-]/’”

20 12 2008
yvoictra

Efectivamente, estos alias también funcionan correctamente. ;)

Gracias!!

Saludos.

12 05 2009
Otto

Muy parecido al comando de “minombresbond” yo utilizo
ls -p | grep /
Donde “-p” -> –file-type añade el indicador / a los directorios

Pues es bobada… pero pues el “-p” es solo para eso!

Saludo

12 05 2009
yvoictra

Pues sí, otra forma más de hacerlo.

Gracias!

Saludos.

Deja un comentario