GNU/Linux >> Znalost Linux >  >> Linux

Jak smyčkovat adresáře v Linuxu?

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 za cd je /tmp (IMHO je to flexibilnější než mít /tmp přímo v find 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, že find 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

Linux
  1. Jak najít soubor v Linuxu

  2. Jak najít soubor v Linuxu ve všech adresářích rekurzivně

  3. Jak přejmenovat adresář v Linuxu

  1. Jak vyhledávat a odstraňovat adresáře rekurzivně v systému Linux

  2. Jak najít a odstranit prázdné adresáře a soubory v Linuxu

  3. Jak porovnávat adresáře přes ssh

  1. Jak používat FIND v Linuxu

  2. Jak najít výchozí IP bránu v Linuxu

  3. Jak najít adresáře, které byly aktualizovány minulý den v linuxu?