cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
Una breve explicación:
-
find
encuentra archivos (obviamente) -
.
es el directorio actual, que después delcd
es/tmp
(En mi humilde opinión, esto es más flexible que tener/tmp
directamente en elfind
dominio. Solo tienes un lugar, elcd
, para cambiar, si desea que se realicen más acciones en esta carpeta) -
-maxdepth 1
y-mindepth 1
asegúrese de quefind
solo busca en el directorio actual y no incluye.
en el resultado -
-type d
busca solo directorios -
-printf '%f\n
imprime 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