GNU/Linux >> Linux Esercitazione >  >> Linux

Come eseguire il looping delle directory in Linux?

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

Una breve spiegazione:

  • find trova i file (ovviamente)

  • . è la directory corrente, che dopo il cd è /tmp (IMHO questo è più flessibile che avere /tmp direttamente nel find comando. Hai un solo posto, il cd , da cambiare, se vuoi che più azioni abbiano luogo in questa cartella)

  • -maxdepth 1 e -mindepth 1 assicurati che find cerca solo nella directory corrente e non include . stesso nel risultato

  • -type d cerca solo le directory

  • -printf '%f\n stampa solo il nome della cartella trovata (più una nuova riga) per ogni hit.

Et voilà!


Tutte le risposte finora usano find , quindi eccone uno con solo il guscio. Non c'è bisogno di strumenti esterni nel tuo caso:

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. Come usare TROVA in Linux

  2. Come cercare e rimuovere le directory in modo ricorsivo su Linux

  3. Come trovare un file in Linux

  4. Come rinominare una directory su Linux

  5. Come trovare l'IP del gateway predefinito in Linux

Come navigare nelle directory più velocemente in Linux

Come trovare l'indirizzo IP in Linux

Come trovare il nome host in Linux

Come trovare ed eliminare directory vuote in Linux

Come trovare l'ultimo accesso su Linux

Come trovare l'indirizzo IP in Linux