domingo, 14 de diciembre de 2008

Cómo listar sólo directorios en el terminal

Fuente: linux.byexamples.com

Más de una vez te puede ser útil. Para que en el terminal se te muestren sólo los directorios lo más fácil es usar la opción del comando ls:
ls -d */

Si deseas ver los directorios que empiecen por una letra específica también puedes hacerlo. Por ejemplo, si deseas ver los directorios cuyo nombre parte con la letra b:
ls -d b*/

Aquí debes recordar que linux es sensible al uso de mayúsculas y minúsculas, por lo tanto en el ejemplo anterior aquellas carpetas cuyo nombre se inicia con B no se muestran.
Si, por otro lado, lo que quieres es ver las carpetas cuyo nombre se inicia con la letra b y sus respectivos subdirectorios el comando sería el siguiente:
ls -d b*/*/

En caso de que desees ver los directorios ocultos:
ls -d .*/

También es posible ver un despliegue más detallado de los directorios, incluyendo los permisos y propietarios:
ls -d */ -l

Obviamente también es posible incluir los directorios ocultos:
ls -d .*/ -l

4 comentarios:

fai dijo...

lo que comentas en esta entrada no es cierto. La opcion -d de ls muestra el nombre de los directorios en lugar de su contenido, pero lo que no hace es mostrar sólo directorios. Con todos esos comandos que pones seguirás obteniendo un listado de ficheros que contiene tanto directorios como no directorios. Para listar SOLAMENTE los ficheros que sean directorios deberías hacer algo como esto:

$ ls -F | grep '/$'

Filoctetes dijo...

Creo que no estoy de acuerdo. Si entiendo bien lo que dices, tu argumento es que si uso ese comando la lista contendrá tanto directorios como archivos que, por ejemplo, empiecen con la misma letra. Por favor, si no te entendí corrígeme. El parámetro -d lista el nombre del directorio en vez del contenido. Eso deja fuera el resto de los archivos. No es una suposición, ya que es una opción que suelo usar.
Saludos.

lololo dijo...

Podrían explicarme si es posible, ¿cómo se podrían listar sólo los archivos?
Es decir en una carpeta tengo 2 txt
y una carpeta 1.txt, 2.txt y "/Carpeta de Fotos/"
Se podría hacer un ls donde solo salga
1.txt 2.txt

Súper crafter 94 dijo...

Hola para listar solo directorios y no archivos pueden usar el comando tree -d