2011-03-02 15 views
16

Cómo puedo listar los subdirectorios con ls, con '-d' solo se muestra el directorio actual. Quiero que me dé algo como find . -type d -maxdepth 1.Lista de subdirectorios con ls

+1

Tal vez usted quiere para escribir: 'encontrar. -type d -maxdepth 1' (sin '' '' '' -maxdepth'. –

+0

gracias, lo cambié :-) – Bernhard

Respuesta

26

Esto debería ayudar:

ls -d */

*/ sólo igualará directorios bajo el directorio actual. Los nombres del directorio de salida probablemente contendrán el final '/'.

+4

Para ser pedante sobre esto, debe hacer 'ls -d. */* /' o 'shopt -s dotglob; ls -d. */', de lo contrario los directorios que comiencen con dot (' .') no aparecerán en la lista. –

6

ls -d */ y ls -d */*/ parecen funcionar bien.

3

Se pueden combinar con grep:

ls -l | grep '^d' 

para obtener sólo los nombres de archivo:

ls -l | grep '^d' | awk '{ print $9 }' 

Usted puede hacer esto en un práctico alias:

alias ldir="ls -l | grep '^d'" 
+2

Si ya está usando 'awk',' grep' es superfluo: 'ls -l | awk '/^d/{print $ 9}' ' –

Cuestiones relacionadas