Bash Loop tra file in una directory

Su Ubuntu l’uso di loop ha introdotto la possibilità di applicare operazioni su più file. Il ciclo è la cosa più efficace in quanto consente all’utente di applicare ripetutamente la stessa logica all’elemento utilizzando una piccola riga di codice.

Per comprendere il concetto di loop sui file nella directory, dobbiamo accedere all’applicazione e ai servizi Ubuntu. Quando disponi dei privilegi, puoi operare solo con file e directory.

Bash dovrebbe essere installato sul sistema operativo. In alcune installazioni, lo trovate preinstallato aggiornando i pacchetti. Se è già installato, dobbiamo aggiornare la versione perché deve essere superiore alla 4. Per verificare la versione della Bash preinstallata nel sistema, utilizzate questo comando:

bash –version

bash scorrere tra file in una directory 1

Quindi devi fare alcune funzioni su file e directory. Puoi eseguire, a tua scelta, i comandi spiegati di seguito su qualsiasi directory. Ma per essere precisi, preferiamo creare una nuova directory in modo che tutti gli oggetti siano facilmente accessibili quando la apriremo.

Il primo passo è creare una directory. Ho preso un nome a caso come “abc”. Crea una directory con questo comando:

bash scorrere tra file in una directory 2

Dopo averla creata al suo interno creeremo tutti i comandi. Dopo la creazione della directory, ora entriamoci dentro con il comando:

bash scorrere tra file in una directory 3

Dopo che siamo entrati creiamo dei file con il comando touch:

touch file1.txt
touch file2.txt
touch file3.txt
touch file4.txt

bash scorrere tra file in una directory 4

Esistono molti metodi per creare file su Ubuntu. Oltre al comando touch, ho usato il comando echo per creare e aggiungerci all’ interno il contenuto con questo comando:

echo “Linux, ubuntu, Postgresql” > file7.txt

Questo file viene creato in una directory attualmente in esecuzione per impostazione predefinita. Perciò il nome della directory appena creata non viene aggiunto con il prompt dei comandi. Puoi anche creare file utilizzando un intervallo e un’espansione nel comando touch:

touch file- { 1 .. 8 } .txt

Con questo singolo comando creeremo file con estensione .txt:

for file in *; do echo $file; done

bash scorrere tra file in una directory 5

Ora puoi scorrere nella directory appena creata e visualizzare i nomi dei file. Poichè dobbiamo scorrere nei file presenti nella directory avremo bisogno di un ciclo. I loop sono molto efficaci da usare in quanto recuperano dati in minor tempo e con meno input. Qui useremo un ciclo for, in questo modo ogni nome del file verrà mostrato nella riga successiva.

“* asterisco* è utilizzato per tutti i file presenti in questa diretory. Questo consentirà al ciclo for di acquisire tutti i file. Se vogliamo un output più preciso, possiamo aggiungere alcun termini con il segno asterisco. Per esempio, ‘file-*’ viene utilizzato per tutti i file che iniziano con il nome file e *.txt per recuperare i file con estensione .txt. Useremo, questi esempi, in modo ulteriore nell’articolo.

Questo ciclo funzionerà in modo da recuperare tutti i file dalla directory e quindi visualizzare tutti i file tramite il comando echo. Il segno “$” qui rappresenta il nome del file. Dal risultato, puoi vedere che viene mostrato ogni nome del file.

Dopo aver verificato i file creati visualizzando i suoi nomi, ora è il momento di inserire il valore nei file perché sono vuoti. Questo può essere fatto manualmente aprendo ogni file nell’editor di testo e quindi scrivendo i dati. La seconda opzione è inserire i dati in ogni file tramite il comando nel terminale. Ma richiede tempo per inserire i dati in ogni file tramite un singolo comando per ogni file. Ma può essere fatto facilmente e collettivamente usando il ciclo for in un singolo comando.

for file in *; do echo -2 “$file\nLinux Ubuntu” > $file ; done

Dopo aver eseguito il comando abbiamo inserito in ogni file che abbiamo creato il suo valore. Se usato con echo, il flag ‘-e’ conserverà la nuova riga nel file. Per vedere i dati inseriti, puoi navigare nella directory ‘abc’.
‘$file” mostrerà il nome del file per primo, e i dati che hai inserito saranno visualizzati in anteprima sulla seconda riga perché “\n” è usato per spostare le parole usate dopo questo su un’altra riga. Puoi anche controllare i dati inseriti tramite il comando:

for file in *; do cat $file; done

bash scorrere tra file in una directory 6

Il comando cat viene utilizzato per recuperare i dati presenti in tutti i file della directory.

La procedura di inserimento dei dati che il recupero possono essere eseguite tramite un unico comando:

for file in *; do echo –e “$file\nbash programming” > $file; cat $file; done

bash scorrere tra file in una directory 7

Il primo passo è scrivere i dati nel file e poi visualizzarli. Quando esegui il comando, l’output sarà il seguente:

Ogni file contiene lo stesso valore. Questo è dovuto al ciclo “for”.

Conosciamo il ciclo per recuperare i dati e inserire i valori, ecc., ma il ciclo viene utilizzato anche per creare backup. Questi file, alla fine, hanno l’estensione “.bak”. Ora esegui il comando backup nella shell per vedere il backup di ogni file:

for file in *; do cp $file “$file.bak”; done;

La parola chiave “cp” viene utilizzata per eseguire il backup di tutti i file. Ora per vedere i file su cui viene applicato questo comando. Useremo il comando:

bash scorrere tra file in una directory 8

Ora è visibile dall’output che viene mostrato il dettaglio dei file. Data, nome file, nome utente e ora anche dove è stato eliminato. Inoltre, hai una copia accurata di ogni file.

Se vogliamo solo i file jpeg. lo useremo nel comando:

for file in *.jpeg; do echo $file; done

Questo porterà solo i nomi delle immagini.

Anche un semplice “find” può svolgere la stessa funzione. Recupererà tutti i file con estensione .sh:

find. – nome “*sh”

Useremo la parola chiave “find” nel ciclo for:

for file in *; do find . File.*; done

bash scorrere tra file in una directory 9

Questo porterà tutti i file nella directory corrente. Questi hanno estensioni di .bak, .jpeg, .txt. eccetera.

Ora, se vuoi vedere il nome di tutti i file di directory e i dati al loro interno, questo viene fatto anche dal ciclo ‘for’:

for file in *; do file $file; done

bash scorrere tra file in una directory 10

 

Grazie! per l’utilizzo della Guida di Linuxiano.

Trovi questo tutorial utile? Condividi con i tuoi amici per tenerlo in vita.
Sii il primo a commentare, apprezzo i tuoi suggerimenti. Per ulteriori domande potete commentare qui sotto.

Fonte: https://linuxiano.altervista.org/2021/10/bash-loop-tra-file-in-una-directory/

Se vuoi sostenerci, puoi farlo acquistando qualsiasi cosa dai diversi link di affiliazione che abbiamo nel nostro sito o partendo da qui oppure alcune di queste distribuzioni GNU/Linux che sono disponibili sul nostro negozio online, quelle mancanti possono essere comunque richieste, e su cui trovi anche PC, NAS e il ns ServerOne. Se ti senti generoso, puoi anche donarmi solo 1€ o più se vuoi con PayPal e aiutarmi a continuare a pubblicare più contenuti come questo. Grazie!

Hai dubbi o problemi? Ti aiutiamo noi!

Se vuoi rimanere sempre aggiornato, iscriviti al nostro canale Telegram.
Se vuoi ricevere supporto per qualsiasi dubbio o problema, iscriviti alla nostra community Facebook o gruppo Telegram.
Cosa ne pensi? Fateci sapere i vostri pensieri nei commenti qui sotto.
Ti piace quello che leggi? Per favore condividilo con gli altri.
Amazon Music
Scopri le ultime offerte per dischi ssd su Acquista su Amazon
Scopri le ultime offerte per memorie RAM DDR su Acquista su Amazon
Scopri le ultime offerte per Chromebook su Acquista su Amazon
Scopri le ultime offerte per Raspberry su Acquista su Amazon

Potrebbero interessarti anche...

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.