Cómo enumerar solo directorios en Linux
El comando ls en Linux se usa para listar los archivos y directorios en un directorio. Pero si desea enumerar directorios solo usando el comando ls, ¿cuáles son las opciones?
Aprendemos a usar el encadenamiento de comandos (usando tuberías) para ver qué directorios están presentes en un directorio dado.
En este tutorial, le mostraré varias formas de enumerar directorios solo en Linux.
Listado de directorios usando comodines
El método más simple es usar comodines. Todos los directorios terminan en barra inclinada.
$ ls -d */ Desktop/ Downloads/ looped/ Music/ orb.db/ Pictures/ Templates/ Videos/ Virus/ Documents/ jvm/ mounts/ netbeans-6.9/ PacketTracer5/ Public/ Ubuntu One/ VirtualBox VMs/
Para la lista larga, solo agregue -l
opción.
$ ls -ld */ drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/ drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/ drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/ drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm/ drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped/ drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts/ drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music/ drwxr-xr-x 12 raghu raghu 4096 2012-01-24 19:29 netbeans-6.9/ drwxr-xr-x 3 raghu raghu 4096 2012-04-17 12:23 orb.db/ drwxr-xr-x 4 raghu raghu 4096 2011-11-16 13:03 PacketTracer5/ drwxr-xr-x 5 raghu raghu 4096 2012-07-16 11:41 Pictures/
Usando la opción -F y grep
los -F
opciones agrega una barra diagonal al final. Así que podemos hacer grep de los directorios solo ‘grep’ ing líneas que terminen con una barra inclinada (/).
$ ls -lF | grep /$ drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/ drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/ drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/ drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm/ drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped/ drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts/ drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music/ drwxr-xr-x 12 raghu raghu 4096 2012-01-24 19:29 netbeans-6.9/ drwxr-xr-x 3 raghu raghu 4096 2012-04-17 12:23 orb.db/ drwxr-xr-x 4 raghu raghu 4096 2011-11-16 13:03 PacketTracer5/ drwxr-xr-x 5 raghu raghu 4096 2012-07-16 11:41 Pictures/
o solo para los nombres de directorio, sin -l
opción,
$ ls -F | grep /$ Desktop/ Documents/ Downloads/ jvm/ looped/ mounts/ Music/ netbeans-6.9/ orb.db/ PacketTracer5/ Pictures/
Usando la opción -l y grep
En la larga lista de ls ie ls -l
, podemos ‘grep’ las líneas que comienzan con d
.
$ ls -l | grep ^d drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads drwxr-xr-x 2 raghu raghu 4096 2012-03-27 10:48 jvm drwxr-xr-x 2 raghu raghu 4096 2011-10-29 13:02 looped drwxr-xr-x 2 root root 4096 2011-11-15 01:23 mounts drwxr-xr-x 2 raghu raghu 4096 2011-10-26 16:03 Music
Podemos extraer solo los nombres de los archivos imprimiendo solo las últimas columnas.
$ ls -l | grep ^d | awk '{print $8,$9}' Desktop Documents Downloads jvm looped mounts Music
Usando el comando echo
Podemos usar el comando echo para listar las entradas que siguen con una barra inclinada (/).
$ echo */ Desktop/ Documents/ Downloads/ jvm/ looped/ mounts/ Music/ netbeans-6.9/ orb.db/ PacketTracer5/ Pictures/
Usando printf
De manera similar, printf se puede usar para resaltar cadenas que terminan con barra inclinada (/).
$ printf '%sn' */ Desktop/ Documents/ Downloads/ jvm/ looped/ mounts/
Usando el comando de búsqueda
Siempre podemos encontrar archivos basados en sus tipos de archivos usando el comando buscar:
$ find . -maxdepth 1 -type d . ./.netbeans-registration ./.gvfs ./.shotwell ./.gegl-0.0 ./.cache ./.ssh ./VirtualBox VMs ./.mission-control ./.gnome2 ./.jedit ./.config ./mounts
La opción maxdepth en el comando anterior especifica que la búsqueda se realizará solo en el directorio especificado. De lo contrario, el comando find encontrará los directorios de forma recursiva, recorriendo cada directorio y sus subdirectorios. Además, en este comando, también se muestran los directorios ocultos. En todos los métodos anteriores que usan el comando ls, se puede lograr lo mismo mediante -a
opción. Por ejemplo,
$ ls -laF | grep /$ drwxr-xr-x 60 raghu raghu 4096 2012-09-28 20:18 ./ drwxr-xr-x. 6 root root 4096 2012-06-25 01:08 ../ drwx------ 3 raghu raghu 4096 2011-10-29 14:04 .adobe/ drwx------ 28 raghu raghu 4096 2012-09-28 20:07 .cache/ drwx------ 3 raghu raghu 4096 2011-10-26 16:06 .compiz/ drwxr-xr-x 26 raghu raghu 4096 2012-09-27 00:20 .config/ drwx------ 3 raghu raghu 4096 2011-10-26 16:03 .dbus/ drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop/ drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents/ drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads/ drwxr-xr-x 7 raghu raghu 4096 2012-09-15 23:21 .drpython/ drwxr-xr-x 2 raghu raghu 4096 2012-09-10 14:28 .fontconfig/ drwx------ 5 raghu raghu 4096 2012-09-28 20:07 .gconf/ drwx------ 2 raghu raghu 4096 2012-09-28 23:10 .gconfd/ drwx------ 4 raghu raghu 4096 2011-11-26 20:23 .gegl-0.0/ drwxr-xr-x 22 raghu raghu 4096 2012-09-27 01:44 .gimp-2.6/ drwx------ 11 raghu raghu 4096 2012-09-22 05:23 .gnome2/
o
$ ls -la | grep ^d drwxr-xr-x 60 raghu raghu 4096 2012-09-28 20:18 . drwxr-xr-x. 6 root root 4096 2012-06-25 01:08 .. drwx------ 3 raghu raghu 4096 2011-10-29 14:04 .adobe drwx------ 28 raghu raghu 4096 2012-09-28 20:07 .cache drwx------ 3 raghu raghu 4096 2011-10-26 16:06 .compiz drwxr-xr-x 26 raghu raghu 4096 2012-09-27 00:20 .config drwx------ 3 raghu raghu 4096 2011-10-26 16:03 .dbus drwxr-xr-x 4 raghu raghu 4096 2012-09-27 23:50 Desktop drwxr-xr-x 13 raghu raghu 4096 2012-09-16 13:22 Documents drwxr-xr-x 5 raghu raghu 4096 2012-09-28 15:01 Downloads drwxr-xr-x 7 raghu raghu 4096 2012-09-15 23:21 .drpython
Gracias por leer este artículo. Déjame saber lo que piensas.
Leer también: