cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'
Krátké vysvětlení:
-
find
najde soubory (zcela evidentně) -
.
je aktuální adresář, který je zacd
je/tmp
(IMHO je to flexibilnější než mít/tmp
přímo vfind
příkaz. Máte pouze jedno místo,cd
, změnit, pokud chcete, aby v této složce probíhalo více akcí) -
-maxdepth 1
a-mindepth 1
ujistěte se, žefind
hledá pouze v aktuálním adresáři a nezahrnuje.
sám ve výsledku -
-type d
hledá pouze adresáře -
-printf '%f\n
vytiskne 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