GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie überschleife ich Verzeichnisse in Linux?

cd /tmp
find . -maxdepth 1 -mindepth 1 -type d -printf '%f\n'

Eine kurze Erklärung:

  • find findet (ganz offensichtlich) Dateien

  • . ist das aktuelle Verzeichnis, das nach dem cd ist /tmp (IMHO ist dies flexibler als /tmp zu haben direkt im find Befehl. Sie haben nur einen Ort, den cd , um zu ändern, ob in diesem Ordner weitere Aktionen ausgeführt werden sollen)

  • -maxdepth 1 und -mindepth 1 Stellen Sie sicher, dass find sucht nur im aktuellen Verzeichnis und enthält nicht . selbst im Ergebnis

  • -type d sucht nur nach Verzeichnissen

  • -printf '%f\n gibt nur den Namen des gefundenen Ordners (plus Zeilenumbruch) für jeden Treffer aus.

Et voilà!


Alle bisherigen Antworten verwenden find , also hier ist eine mit nur der Schale. In Ihrem Fall sind keine externen Tools erforderlich:

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. So verwenden Sie FIND unter Linux

  2. So suchen und entfernen Sie Verzeichnisse rekursiv unter Linux

  3. So finden Sie eine Datei in Linux

  4. So finden Sie eine Datei in Linux rekursiv in allen Verzeichnissen

  5. So benennen Sie ein Verzeichnis unter Linux um

So navigieren Sie unter Linux schneller durch Verzeichnisse

So finden Sie die IP-Adresse unter Linux

So finden Sie den Hostnamen unter Linux

So finden und löschen Sie leere Verzeichnisse in Linux

So finden Sie die letzte Anmeldung unter Linux

So finden Sie die IP-Adresse in Linux