¿Listar solo directorios usando ls en Bash? [cerrado]

Resuelto Sibi asked hace 11 años • 29 respuestas

Este comando enumera los directorios en la ruta actual:

ls -d */

¿Qué hace exactamente el patrón */?

¿Y cómo podemos dar la ruta absoluta en el comando anterior (por ejemplo ls -d /home/alice/Documents) para enumerar solo directorios en esa ruta?

Sibi avatar Jan 16 '13 13:01 Sibi
Aceptado

*/es un patrón que coincide con todos los subdirectorios en el directorio actual ( *coincidiría con todos los archivos y subdirectorios; lo /restringe a directorios). De manera similar, para enumerar todos los subdirectorios en /home/alice/Documents, usels -d /home/alice/Documents/*/

Gordon Davisson avatar Jan 16 '2013 06:01 Gordon Davisson

Cuatro formas de hacer esto, cada una con un formato de salida diferente

1. Usandoecho

Ejemplo: echo */Esto echo */*/
es lo que obtuve:

cs/ draft/ files/ hacks/ masters/ static/  
cs/code/ files/images/ static/images/ static/stylesheets/  

2. Usando lssolo

Ejemplo: ls -d */
Esto es exactamente lo que obtuve:

cs/     files/      masters/  
draft/  hacks/      static/  

O como lista (con información detallada):ls -dl */

3. Usando lsygrep

Ejemplo: ls -l | grep "^d" Esto es lo que obtuve:

drwxr-xr-x  24 h  staff     816 Jun  8 10:55 cs  
drwxr-xr-x   6 h  staff     204 Jun  8 10:55 draft  
drwxr-xr-x   9 h  staff     306 Jun  8 10:55 files  
drwxr-xr-x   2 h  staff      68 Jun  9 13:19 hacks  
drwxr-xr-x   6 h  staff     204 Jun  8 10:55 masters  
drwxr-xr-x   4 h  staff     136 Jun  8 10:55 static  

4. Bash Script (no recomendado para nombres de archivos que contienen espacios)

Ejemplo: for i in $(ls -d */); do echo ${i%%/}; done
Esto es lo que obtuve:

cs  
draft  
files  
hacks  
masters  
static

Si desea tener '/' como carácter final, el comando será:for i in $(ls -d */); do echo ${i}; done

cs/  
draft/  
files/  
hacks/  
masters/  
static/
Albert avatar Jun 09 '2013 12:06 Albert

Yo suelo:

ls -d */ | cut -f1 -d'/'

Esto crea una sola columna sin una barra diagonal, lo que resulta útil en scripts.

Thomas Altfather Good avatar Feb 27 '2014 15:02 Thomas Altfather Good