Come iterare per ogni cartella con Bash

Cerca

Lo scenario è tra i più comuni nell’ambito dell’amministrazione di sistemi Linux based. Quando abbiamto bisogno di preparare uno script Bash che itera operazioni per ogni cartella presente in un dato percorso, possiamo seguire questa semplice guida.

Iterare operazioni per ogni cartella in Bash

Ipotiziamo di avere una serie di file e cartelle contenute nel percorso /home/my-folder/ e di avere la necessita di ripetere una serie di istruzioni solo per tutte le cartelle (escludendo quindi i file) contenute nel percorso. Le porzioni di codice qui sotto vanno eseguite dal percorso /home/my-folder. Il nostro script Bash si presenterà così
				
					for f in */ ; do
    echo "$f"
done

				
			

La presenza dello slash dopo l’asterisco sta ad indicare che verranno tenute in considerazione solo le cartelle.

Inoltre, nel caso in cui si volessero escludere anche i link simbolici dal computo, possiamo aggiungere una condizione che nel caso in cui sia verificata salta all’iterazione successiva.

Lo script Bash si presenterà quindi così

				
					for f in */ ; do
    [ -L "${f%/}" ] && continue
    echo "$f"
done
				
			

Un’altra valida alternativa è quella di testare se è effettivamente una cartella.

In questo caso lo script Bash sarà come il seguente

				
					for f in *; do
    if [ -d "$f" ]; then
        echo "$f" #$f è una directory
    fi
done
				
			

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.

Most Recent

Come installare Composer su Ubuntu

Composer è il gestore delle dipendenze per PHP. Per installarlo su Ubuntu seguiamo questi semplici passi illustrati qui sotto. Installazione di Composer Per prima cosa

Come realizzare un client NTP in Python

In questo post vediamo come realizzare, utilizzando poche righe di codice, uno script Python che agisca da client NTP. Soluzione 1 In questa prima soluzione

Come avviare UEFI dopo reboot su Linux

L’accesso a UEFI al boot del computer richiede la pressione di un tasto che varia per ogni produttore di hardware. I tasti che più comunemente

Partners