Bash Loop attraverso le directory in modo ricorsivo

Bash Loop attraverso le directory in modo ricorsivo
La shell bash è uno strumento incredibile che offre molta facilità e funzionalità del terminale. Questo rapido tutorial discuterà di vari modi per lottare attraverso le directory ed svolgere determinate funzioni in modo ricorsivo.

The Bash for Loop

Per ottenere un ciclo ricorsivo attraverso le directory, useremo i loop bash, in particolare per un loop.

Il loop è un tipo comune di loop in Bash e in altri linguaggi di programmazione. Itera su un determinato elenco di elementi/opzioni fino a quando e esegue una serie di comandi.

La sintassi generale per il comando per loop è:

per me in elenco
Fare
[COMANDO]
Fatto;

Ecco un esempio di un ciclo bash è:

#/bin/bash
per i in 0… 10
Fare
echo '$'
Fatto

Il loop di cui sopra stampa i valori da 0 a 10.

Input dell'utente Bash

Successivamente, dobbiamo richiedere all'utente una directory valida. Per accettare l'input dell'utente, utilizziamo il comando Echo in bash.

Per esempio:

#!/Bin/Bash
Echo "Inserisci la directory"
Leggi Dir
CD $ dir
echo "ora in /ecc"

Sposta file (script bash)

Con i concetti di loop e input dell'utente fuori mano, possiamo mettere insieme la nostra shell. La prima operazione è quella di trovare i file in modo ricorsivo con estensioni specifiche e spostarli.

Ecco uno script di esempio per questo:

#/bin/bash
Echo "ENTRA DIR"
Leggi Dir
Echo "Inserisci la destinazione"
Leggi dest
Per i in $ (trova $ dir -name '*.tronco d'albero');
Fare
mv -v $ i $ dest
Fatto;

Lo script chiederà all'utente una directory e quindi cercherà un'estensione specifica. Sposterà quindi i file nella destinazione specificata.

Cancella file

Lo script sopra può anche essere modificato per eliminare i file invece di spostarli. Un esempio è come

#/bin/bash
Echo "Enter Dir"
Leggi Dir
Per i in $ (trova $ dir -name '*.tronco d'albero');
Fare
rm -rf $ i
Fatto;

File di stampa

Per stampare i file in una directory, utilizzare lo script come:

#/bin/bash
Echo "ENTRA DIR"
Leggi Dir
CD $ dir
Per I in $ (trova $ dir -type f);
Fare
echo $ i;
Fatto;

Conclusione

Quanto sopra sono gli script di esempio che è possibile utilizzare per loop directory ed eseguire un'azione specifica. È bene notare che ci sono strumenti sviluppati per eseguire tali attività, ma uno script è un buon modo per andare se non riesci a trovare uno strumento appropriato.