cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
Krátké vysvětlení:
-
findnajde soubory (zcela evidentně) -
.je aktuální adresář, který je zacdje/tmp(IMHO je to flexibilnější než mít/tmppřímo vfindpříkaz. Máte pouze jedno místo,cd, změnit, pokud chcete, aby v této složce probíhalo více akcí) -
-maxdepth 1a-mindepth 1ujistěte se, žefindhledá pouze v aktuálním adresáři a nezahrnuje.sám ve výsledku -
-type dhledá pouze adresáře -
-printf '%f\nvytiskne pouze název nalezené složky (plus nový řádek) pro každý přístup.
Et voilà!
Všechny dosavadní odpovědi používají find , takže tady je jeden s pouze skořápkou. Ve vašem případě nepotřebujete externí nástroje:
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
Jak získat název aktuální větve git do proměnné v shell skriptu?
Přidejte předponu na začátek každého řádku