it-swarm-es.tech

¿Hay alguna opción con el comando 'ls' para ver solo los directorios?

A veces, necesito verificar solo los directorios, no los archivos. ¿Hay alguna opción con el comando ls? ¿O hay alguna utilidad para hacer eso?

EDIT : Estoy usando Mac OS X y ls -d me da . aunque tengo directorios.

86
prosseek

Sé que ya hay una respuesta seleccionada, pero puede obtener el comportamiento solicitado con solo ls:

ls -ld -- */

(Tenga en cuenta que '-' marca el final de los parámetros, evitando que los nombres de carpetas que comienzan con un guión se interpreten como otras opciones de comando).

Esto enumerará todos los directorios no ocultos (a menos que configure los globos de su Shell para expandirlos) en el directorio de trabajo actual donde se ejecuta (tenga en cuenta que también incluye enlaces simbólicos a los directorios). Para obtener todos los subdirectorios de alguna otra carpeta, simplemente intente:

ls -ld /path/to/directory/*/

Tenga en cuenta que -l es opcional.

96
Steven D

No, pero un simple comando find lo hará:

find . -type d -depth 1

o grep

ls -F | grep /

Podrías alias cualquiera de ellos si es necesario.

16
gvkv

También necesitaba ver directorios ocultos, así que he modificado la sugerencia anterior para satisfacer mis necesidades.

ls -d -- */ .*/

(dependiendo del Shell, eso también puede incluir . y ..)

7
Neil Chandler

Me gusta la utilidad árbol para obtener una visión general sobre la estructura del directorio. Está disponible en MacPorts y todas las distribuciones de Linux que he probado.

tree -d -L 2

Eso mostraría todos los directorios, dos niveles de profundidad.

7
Claes Mogren

Con zsh (como se encuentra por defecto en macOS, incluso solía ser /bin/sh allí), usaría calificadores globales para seleccionar archivos en función de su tipo:

  • Listar directorios no ocultos:

    ls -d -- *(/)
    
  • Listar todos los directorios:

    ls -d -- *(D/)
    

    (. y .. siempre están excluidos, agréguelos individualmente si lo desea)

  • También incluya enlaces simbólicos a directorios:

    ls -d -- *(D-/)
    

    (- hace que se apliquen otros calificadores después de la resolución del enlace simbólico).

3
Stéphane Chazelas

No hay solo una opción para enumerar directorios ...

Pero puedes usar -d (enumere los directorios en sí, no sus contenidos) y */ para que coincidan los directorios:

ls -d */

Y trate de usar el punto, para los ocultos, ls -d .*/.

Solo por diversión, intente: ls -d y ls */. ¡Las diferencias serán claras!

Árbitro:

0
marcio