Feu un bucle a través dels fitxers d’un directori

Bash Loop Through Files Directory



A Ubuntu, inclòs Bash, els bucles han permès aplicar operacions a diversos fitxers. El bucle és el més eficaç, ja que permet a l'usuari aplicar la mateixa lògica a l'element repetidament mitjançant una línia de codi petita.

Per entendre el concepte de repetició de fitxers al directori, heu d’accedir a l’aplicació i als serveis d’Ubuntu. Quan tingueu alguns privilegis, només podeu operar amb fitxers i directoris.







Hauríeu d’haver instal·lat Bash al sistema operatiu Ubuntu. En algunes instal·lacions, s’instal·la per defecte en l’actualització de paquets. Si ja està instal·lat, heu d’actualitzar la versió perquè ha de ser superior a 4. Per continuar amb la guia actual, heu de mantenir la versió anterior a 4. Per comprovar la versió del Bash preinstal·lat al vostre sistema, utilitzeu el comanda al terminal Ubuntu.



$Bash--versió



Per tant, heu de realitzar algunes funcions en fitxers i directoris. Podeu executar les ordres explicades a continuació en qualsevol directori que trieu. Però, per ser precisos, és preferible crear un directori nou de manera que totes les pertinences d'aquest directament siguin fàcilment accessibles quan l'obriu.





El primer pas és crear un directori. Hem pres un nom de mostra del directori abc. Creeu un directori executant l'ordre.

$mkdirabc



Després de crear el directori, ara heu de realitzar totes les ordres sobre això. Per tant, després de la creació del directori, canvieu a aquest directori. Utilitzeu l'ordre esmentada a continuació:

$cdabc

Després d’anar al directori, ara creeu alguns fitxers mitjançant l’ordre tàctil.

$tocarfile1.txt

S’utilitzen molts mètodes per crear un fitxer a Ubuntu. A més de l'ordre tàctil, hem utilitzat l'ordre echo aquí per crear un fitxer i afegir-hi el contingut col·lectivament en una sola ordre:

$troboLinux, Ubuntu, Postgresql>file7.txt

Aquest fitxer es crea en un directori senzill que actualment s’executa per defecte. Per tant, el nom del directori recentment creat no s’afegeix amb l’indicador d’ordres. També podeu crear fitxers mitjançant un interval i una expansió a l’ordre tàctil.

$tocardossier-{1..8}.txt

En utilitzar aquesta ordre en fitxers nous d'extensions .txt es crearan utilitzant una sola ordre.

Després d'això, ara podeu recórrer el directori que es crea recentment. Mostra els noms dels fitxers. Com que hem de recórrer els fitxers presents al directori, necessitem un bucle. Els bucles són molt eficaços d’utilitzar, ja que obtenen les dades en menys temps i requereixen menys entrada. Aquí utilitzarem un bucle for. En utilitzar aquest bucle, es mostrarà cada nom de fitxer a la línia següent.

$per dossier dins *;fer trobo $ fitxer;fet

* s'utilitza per a tots els fitxers presents en aquest directori. Això permet que el bucle 'for' agafi tots els fitxers. Però per precisar la sortida, podeu afegir alguns termes amb el signe asterisc. Per exemple, 'fitxer- *' s'utilitza per a tots els fitxers que comencen des del fitxer. I * .txt per obtenir els fitxers que tenen extensions .txt. Utilitzarem aquests exemples més en l'article.

Aquest bucle funcionarà de manera que recuperarà tots els fitxers del directori i, a continuació, mostrarà tots els fitxers mitjançant l'ordre echo. El signe $ aquí representa el nom del fitxer. A partir del resultat, podeu veure que es mostra cada nom de fitxer.

Després de verificar els fitxers creats mostrant els noms dels fitxers, ara és hora d’introduir-ne el valor perquè els fitxers creats estan buits. Això es pot fer manualment obrint cada fitxer a l’editor de text i escrivint les dades. La segona opció és introduir dades a cada fitxer mitjançant l’ordre del terminal. Però requereix temps per introduir les dades a cada fitxer mitjançant una sola ordre per a cada fitxer. Però es pot fer fàcilment i col·lectivament utilitzant for loop en una sola ordre.

$per dossier dins *;fer trobo -2 $ fitxer nLinux Ubuntu> $ fitxer;fet

Després de l'execució de l'ordre, s'ha introduït el valor a cada fitxer que hem creat. Quan s’utilitza amb eco, el senyalador ‘-e’ conservarà la nova línia del fitxer. Per veure les dades introduïdes, podeu anar al directori ‘abc’. Ara obriu qualsevol fitxer de text. El fitxer ja no està buit.

‘$ File mostrarà el nom del fitxer primer al fitxer i les dades que heu introduït es previsualitzaran a la segona línia perquè n s’utilitza per canviar les paraules que s’utilitzen després a una altra línia. També podeu comprovar les dades introduïdes mitjançant l'ordre.

$per dossier dins *;fer gat $ fitxer;fet

L'ordre Cat s'utilitza per obtenir les dades presents a tots els fitxers del directori.

Tant el procediment per introduir les dades com per obtenir-les es pot fer mitjançant una sola ordre.

$per dossier dins *;fer trobo-I$ fitxer nbash programació> $ fitxer;gat $ fitxer;fet

El primer pas és escriure les dades al fitxer i després mostrar-les. Quan executeu l'ordre, la sortida serà la següent:

Cada fitxer conté el mateix valor. Això es deu al bucle 'for'.

Coneixem el bucle per obtenir les dades i inserir els valors, etc., però també s’utilitza per crear còpies de seguretat. Aquests fitxers tenen l'extensió .bak al final. Ara executeu l'ordre backup a l'intèrpret d'ordres per veure la còpia de seguretat de cada fitxer.

$per dossier dins *;fer cp $ fitxer $ fitxer.darrere;fet;

La paraula clau CP s'utilitza per fer una còpia de seguretat de tots els fitxers. Ara per veure els fitxers sobre els quals s'aplica aquesta ordre. Utilitzem l'ordre com:

$ls- el

Ara és visible des de la sortida que es mostra el detall dels fitxers. Data, nom del fitxer, nom d'usuari i hora també en què es va suprimir. A més, teniu una còpia precisa de cada fitxer.

Si volem només els fitxers jpeg. Ho utilitzarem a l'ordre

$per dossier dins *.jpeg;fer trobo $ fitxer;fet

Això portarà només els noms de les imatges.

Una troballa senzilla també pot fer la mateixa funció. Recuperarà tots els fitxers amb una extensió de .sh.

$trobar. - nom*sh

Utilitzarem la paraula clau find al bucle for.

$per dossier dins *;fertrobar. Dossier.*;fet

Això portarà tots els fitxers al directori actual. Aquests tenen extensions de .bak, .jpeg, .txt. etc.

Ara, si voleu veure el nom de tots els fitxers de directori i les dades que contenen, també ho fa el bucle 'for'.

$per dossier dins *;fer dossier $ fitxer;fet

Conclusió

Cercar els fitxers de qualsevol directori ja no és difícil, com sabem, fer servir bucles a Bash i funcionar als sistemes operatius Linux. Aquest tutorial és una guia completa per crear, accedir i realitzar operacions al directori mitjançant un bucle 'for'.