Bash bläddra igenom filer i en katalog

Bash Loop Through Files Directory



I Ubuntu, inklusive Bash, har loopar gjort det möjligt att tillämpa operationer på flera filer. Looping är det mest effektiva eftersom det tillåter användaren att tillämpa samma logik på objektet upprepade gånger med hjälp av en liten kodrad.

För att förstå begreppet looping över filer i katalogen behöver du tillgång till Ubuntu -applikationen och tjänsterna. När du har vissa privilegier kan du bara använda filer och kataloger.







Du borde ha installerat Bash på Ubuntu -operativsystemet. I vissa installationer är det installerat som standard i uppdateringen av paket. Om den redan är installerad måste du uppgradera versionen eftersom den måste vara över 4. För att fortsätta den aktuella guiden måste du behålla versionen ovan 4. För att kontrollera versionen av den förinstallerade Bash i ditt system, använd kommando på Ubuntu -terminalen.



$Våldsamt slag--version



Så du måste utföra några funktioner på filer och kataloger. Du kan utföra nedanstående förklarade kommandon i valfri katalog. Men för att vara exakt är det att föredra att skapa en ny katalog så att alla tillhörigheter direkt är lättillgängliga när du öppnar den.





Det allra första steget är att skapa en katalog. Vi har tagit ett exempel på katalogen abc. Skapa en katalog genom att köra kommandot.

$mkdirabc



Efter att ha skapat katalogen måste du nu utföra alla kommandon på det. Så efter skapandet av katalogen, växla till den katalogen. Använd kommandot nedan:

$CDabc

Efter att ha gått till katalogen, skapa nu några filer med hjälp av pekskommandot.

$Rörfile1.txt

Många metoder används för att skapa en fil i Ubuntu. Förutom touchkommandot har vi använt kommandot echo här för att skapa en fil och lägga till innehållet i den tillsammans i ett enda kommando:

$kastade utLinux, ubuntu, Postgresql>file7.txt

Den här filen skapas i en enkel katalog som för närvarande körs som standard. Så namnet på den nyskapade katalogen läggs inte till med kommandotolken. Du kan också skapa filer med hjälp av ett intervall och expansion i pekskommandot.

$Rörfil-{1..8}.Text

Genom att använda detta kommando i nya filer med .txt -tillägg skapas med ett enda kommando.

Efter det kan du nu gå igenom katalogen som är nyskapad. Visa filnamnen. Eftersom vi måste gå igenom filerna i katalogen behöver vi en loop. Slingor är mycket effektiva att använda eftersom de hämtar data på kortare tid, vilket kräver mindre inmatning. Här kommer vi att använda en for loop. Genom att använda denna loop kommer varje filnamn att visas på nästa rad.

$för fil i *;do kastade ut $ fil;Gjort

* används för alla filer som finns i den här katalogen. Detta gör att 'for' -slingan kan ta tag i alla filer. Men för att göra utmatningen exakt kan du lägga till några termer med asterisk -tecknet. Till exempel används 'file-*' för alla filer som startar från filen. Och *.txt för att hämta de filer som har .txt -tillägg. Vi kommer att använda dessa exempel vidare i artikeln.

Denna loop kommer att fungera så att den hämtar alla filer från katalogen och sedan visar alla filer via echo -kommandot. $ -Tecknet här representerar filens namn. Från resultatet kan du se att varje filnamn visas.

Efter att ha verifierat filerna som skapats genom att visa filnamnen är det nu dags att ange värdet i filerna eftersom de skapade filerna är tomma. Detta kan göras manuellt genom att öppna varje fil i textredigeraren och sedan skriva data. Det andra alternativet är att ange data i varje fil genom kommandot i terminalen. Men det tar tid att ange data i varje fil genom ett enda kommando för varje fil. Men det kan göras enkelt och kollektivt genom att använda for loop i ett enda kommando.

$för fil i *;do kastade ut -2 $ fil nLinux Ubuntu> $ fil;Gjort

Efter genomförandet av kommandot har värdet angetts i varje fil vi skapade. När den används med eko bevarar '-e' -flaggan den nya raden i filen. För att se de inmatade uppgifterna kan du navigera till 'abc' -katalogen. Öppna nu en textfil. Filen är inte tom längre.

'$ -Filen visar filnamnet först i filen, och data du angav kommer att förhandsgranskas på den andra raden eftersom n används för att flytta de ord som används efter detta till en annan rad. Du kan också kontrollera data som matats in med kommandot.

$för fil i *;do katt $ fil;Gjort

Cat -kommando används för att hämta data som finns i alla filer i katalogen.

Både proceduren för att mata in data och hämta den kan göras med ett enda kommando.

$för fil i *;do kastade ut-Och$ fil nbash -programmering> $ fil;katt $ fil;Gjort

Det första steget är att skriva data i filen och sedan visa den. När du utför kommandot kommer utmatningen att vara följande:

Varje fil innehåller samma värde. Detta beror på 'för' -slingan.

Vi känner till slingan för att hämta data och infoga värden, etc., men slingan används också för att skapa säkerhetskopior. Dessa filer har tillägget .bak i slutet. Utför nu säkerhetskopian i kommandot för att se säkerhetskopian av varje fil.

$för fil i *;do cp $ fil $ fil.Bakom;Gjort;

CP -nyckelordet används för att säkerhetskopiera alla filer. Nu för att se filerna som detta kommando tillämpas på. Vi använder kommandot som:

$ls- den

Nu är det synligt från utdata att detaljerna i filerna visas. Datum, filnamn, användarnamn och tidpunkt då det raderades. Du har också en korrekt kopia av varje fil.

Om vi ​​bara vill ha jpeg -filerna. Vi kommer att använda detta i kommandot

$för fil i *.jpeg;do kastade ut $ fil;Gjort

Detta kommer bara med namnen på bilder.

Ett enkelt fynd kan också göra samma funktion. Det kommer att hämta alla filer med en förlängning av .sh.

$hitta. - namn*sh

Vi kommer att använda sökordet hitta i en loop.

$för fil i *;dohitta. Fil.*;Gjort

Detta tar alla filer till den aktuella katalogen. Dessa har tillägg av .bak, .jpeg, .txt. etc.

Om du nu vill se namnet på alla katalogfiler och data i dem görs detta också med 'för' -slingan.

$för fil i *;do fil $ fil;Gjort

Slutsats

Att bläddra igenom filerna i valfri katalog är inte längre tufft, som vi vet, att använda loopar i Bash och prestera på Linux -operativsystemen. Denna handledning är en komplett guide för att skapa, komma åt och utföra operationer i katalogen med hjälp av en 'för' -slinga.