cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
Una breve explicación:
-
findencuentra archivos (obviamente) -
.es el directorio actual, que después delcdes/tmp(En mi humilde opinión, esto es más flexible que tener/tmpdirectamente en elfinddominio. Solo tienes un lugar, elcd, para cambiar, si desea que se realicen más acciones en esta carpeta) -
-maxdepth 1y-mindepth 1asegúrese de quefindsolo busca en el directorio actual y no incluye.en el resultado -
-type dbusca solo directorios -
-printf '%f\nimprime solo el nombre de la carpeta encontrada (más una nueva línea) para cada hit.
¡Et voilá!
Todas las respuestas hasta ahora usan find , así que aquí hay uno con solo el caparazón. No necesita herramientas externas en su caso:
for dir in /tmp/*/ # list directories in the form "/tmp/dirname/"
do
dir=${dir%*/} # remove the trailing "/"
echo "${dir##*/}" # print everything after the final "/"
done