ver una que por listar letra empiecen ejemplos copiar contenido consola comandos comando buscar basicos archivos archivo unix shell

una - Listado solo directorios en UNIX



listar archivos en linux que empiecen por una letra (16)

Aquí hay otra solución que muestra directorios vinculados. Lo prefiero ligeramente porque es un subconjunto de la salida ls -l "normal":

ls -1d */ | rev | cut -c2- | rev | xargs ls -ld --color=always

Quiero listar solo los directorios en la ruta especificada ( ls no tiene tal opción). Además, ¿se puede hacer esto con un solo comando de línea?


El seguimiento

find * -maxdepth 0 -type d

básicamente, filtra la expansión de ''*'', es decir, todas las entradas en el directorio actual, por la condición -type d .

La ventaja es que, la salida es la misma que ls -1 * , pero solo con los directorios y las entradas no comienzan con un punto


Esto ha estado funcionando para mí:

`ls -F | grep /`

(Pero, estoy cambiando a echo */ como lo menciona @nos)


La respuesta dependerá de tu concha .

En zsh , por ejemplo, puedes hacer lo siguiente:

echo *(/)

Y se mostrarán todos los directorios dentro del directorio de trabajo actual.

Ver man zshexpn para más información.

Un enfoque alternativo sería usar find(1) , que debería funcionar en la mayoría de los sabores de Unix:

find . -maxdepth 1 -type d -print

find(1) tiene muchos usos, por lo que definitivamente recomendaría man find .


Para listar los directorios en el directorio de trabajo actual se puede usar ls -d */ . Y si necesita listar los directorios ocultos use este comando ls -d .*/


Prueba esto:

find . -maxdepth 1 -type d


Pruebe este ls -d */ para listar directorios dentro del directorio actual


Puede utilizar el comando de tree con su interruptor d para lograr esto.

% tree -d tstdir tstdir |-- d1 | `-- d11 | `-- d111 `-- d2 `-- d21 `-- d211 6 directories

ver man tree para más información.


Puedes usar ls -d */ o tree -d

Otra solución sería la agrupación global, pero esto depende del shell que esté utilizando y si se admite la agrupación global de directorios.

Por ejemplo ZSH:

zsh # ls *(/)


Use esto para obtener una lista de directorios

ls -d */ | sed -e "s/////g"


Ya que hay docenas de maneras de hacerlo, aquí hay otra:

tree -d -L 1 -i --noreport

  • -d: directorios
  • -L: profundidad del árbol (de ahí 1, nuestro directorio de trabajo)
  • -i: sin sangría, solo nombres impresos
  • --noreport: no informe información al final de la lista del árbol

find specifiedpath -type d

Si no desea realizar una intervención en subdirectorios, puede hacer esto en su lugar:

find specifiedpath -type d -mindepth 1 -maxdepth 1

Tenga en cuenta que los directorios de "puntos" (cuyo nombre comience por . ) También se enumerarán; Pero no los directorios especiales . ni .. Si no quieres directorios de "puntos", simplemente puedes grep :

find specifiedpath -type d -mindepth 1 -maxdepth 1 | grep -v ''^/.''


Si tengo este directorio:

ls -l

lrwxrwxrwx 1 nagios nagios 11 août 2 18:46 conf_nagios -> /etc/icinga -rw------- 1 nagios nagios 724930 août 15 21:00 dead.letter -rw-r--r-- 1 nagios nagios 12312 août 23 00:13 icinga.log -rw-r--r-- 1 nagios nagios 8323 août 23 00:12 icinga.log.gz drwxr-xr-x 2 nagios nagios 4096 août 23 16:36 tmp

Para obtener todos los directorios, use -L para resolver enlaces:

ls -lL | grep ''^d''

drwxr-xr-x 5 nagios nagios 4096 août 15 21:22 conf_nagios drwxr-xr-x 2 nagios nagios 4096 août 23 16:41 tmp

Sin -L:

ls -l | grep ''^d''

drwxr-xr-x 2 nagios nagios 4096 août 23 16:41 tmp

Falta el directorio conf_nagios .


### If you need full path of dir and list selective dir with "name" of dir(or dir_prefix*): find $(pwd) -maxdepth 1 -type d -name "SL*"


find . -maxdepth 1 -type d -name [^/.]/* | sed ''s:^/./::''


ls -l | grep ''^d''

Puedes hacer un alias y ponerlo en el archivo de perfil.

alias ld="ls -l| grep ''^d''"