cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
Petite explication :
-
find
trouve les fichiers (évidemment) -
.
est le répertoire courant, qui après lecd
est/tmp
(IMHO c'est plus flexible que d'avoir/tmp
directement dans lefind
commande. Vous n'avez qu'un seul endroit, lecd
, à changer, si vous voulez que plus d'actions aient lieu dans ce dossier) -
-maxdepth 1
et-mindepth 1
assurez-vous quefind
ne regarde que dans le répertoire courant et n'inclut pas.
lui-même dans le résultat -
-type d
recherche uniquement les répertoires -
-printf '%f\n
imprime uniquement le nom du dossier trouvé (plus une nouvelle ligne) pour chaque hit.
Et voilà !
Toutes les réponses jusqu'à présent utilisent find
, alors en voici un avec juste la coque. Pas besoin d'outils externes dans votre cas :
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