Hur man kontrollerar om fil eller katalog finns i Bash

När du arbetar med Bash och shell-skript kan du behöva kontrollera om en katalog eller en filen finns eller inte på ditt filsystem.

Baserat på detta villkor kan du avsluta skriptet eller visa ett varningsmeddelande till slutanvändaren till exempel.

För att kontrollera om en fil eller en katalog finns med Bash, kommer du att använda ”Bash-tester”.

I denna handledning kommer du att lära dig hur du kontrollerar om en fil eller katalog finns i ett Bash-skript.

Innehållsförteckning

Kontrollera om filen finns

För att kontrollera om det finns en fil i Bash måste du använda alternativet ”-f” (för fil) och ange filen du vill kontrollera.

Låt oss till exempel säga att du vill kontrollera om filen ”/ etc / passwd” finns i ditt filsystem eller inte.

I ett skript skulle du skriva följande om uttalande.

Kontrollera filens existens med kortare former

I vissa fall kanske du är intresserad av att kontrollera om en fil finns eller inte direkt i ditt Bash-skal.

För att kontrollera om det finns en fil i Bash med kortare formulär anger du alternativet ”-f” inom parentes och lägger till kommandot som du vill köra om det lyckas.

Med hjälp av exemplet som används tidigare, om du vill kontrollera om ”/ etc / passwd” -filen finns med kortare formulär, skriver du följande kommando

Så hur fungerar det här kommandot?

Kortare formulär är nära relaterade till utgångsstatus.

När du kör ett kommando på Bash går det alltid ut med felstatus: 0 för fel och siffror större än 0 för fel (1, 2 .. 6 och så vidare)

I det här fallet kommer syntaxen ”& &” att kontrollera om kommandot utgångsstatus till vänster är lika med noll: om så är fallet kommer det att utföra kommandot till höger, annars kommer det inte att köras.

Protip: du kan använd ”echo $ {?}” för att se utgångsstatus för den senaste kommandokörningen

Kontrollera flera filer

I i vissa fall kanske du vill kontrollera om det finns flera filer i ditt filsystem eller inte.

För att kontrollera om det finns flera filer i Bash, använd ”-f” -flaggan och ange de filer som ska kontrolleras åtskild av operatorn ”& &”.

Kontrollera om filen inte finns

Å andra sidan kanske du vill kontrollera om en fil inte finns i ditt filsystem.

För att kontrollera om en fil inte finns med Bash måste du använda ”!” symbol följt av alternativet ”-f” och filen som du vill kontrollera.

På samma sätt kan du använda kortare formulär om du snabbt vill kontrollera om en fil inte finns direkt i din terminal.

Observera att det också är möjligt att kontrollera om en fil inte finns med ”||” operatör.

”||” operatören kommer att utföra kommandot till höger om och bara om kommandot till vänster misslyckas (dvs. avslutas med en status som är större än noll).

För att testa om en fil inte finns med ”||” kontrollera bara om den finns med ”-f” -flaggan och ange kommandot som ska köras om det misslyckas.

Kontrollera om katalogen finns

För att kontrollera om det finns en katalog i Bash måste du använda alternativet ”-d” och ange katalognamnet som ska kontrolleras.

Som ett exempel, låt oss säga att du vill kontrollera med Bash om katalogen / etc finns på ditt system.

För att kontrollera dess existens, skulle du skriva följande Bash-skript

När du kör det här skriptet får du följande utdata

Kontrollera katalogens existens med kortare former

I vissa fall kan du vara intresserad av att kontrollera om en katalog finns eller inte direkt i ditt Bash-skal.

För att kontrollera om en katalog finns i Bash med kortare formulär, ange alternativet ”-d” inom parentes och lägg till kommandot som du vill köra om det lyckas.

Låt oss säga att du vill kontrollera om katalogen” / etc ”existerar.

Med den kortare syntaxen skulle du skriva följande kommando.

Skapa ett komplett Bash-skript

Om du befinner dig att kontrollera flera gånger per dag om en fil (eller flera) finns i ditt filsystem, kan det vara praktiskt att ha ett skript som kan automatisera den här uppgiften.

I det här avsnittet ska du skapa ett Bash-skript som kan ta flera filnamn och returnera om det finns eller inte.

Om de inte gör det kommer ett enkelt meddelande att visas på standardutmatningen.

Skapa ett nytt Bash-skript och gör det körbart med chmod.

Här är innehållet i skriptet som ska användas för att dynamiskt kontrollera om det finns filer.

Spara skriptet och lägg till mappen ”bin” som du just skapade i din PATH-miljövariabel.

Nu när ditt skript är tillgängligt var du än befinner dig i systemet kan du ringa ditt skript och börja kontrollera ing om filer finns eller inte.

Fantastiskt!

Du skapade en anpassning för att kontrollera om filer finns i ditt filsystem eller inte.

Slutsats

I denna handledning lärde du dig hur du kan kontrollera om en fil finns eller inte använder Bash-tester och Bash-kort syntax.

På samma sätt lärde du dig hur det är möjligt att verifiera om en katalog finns.

Slutligen har du skrivit ett komplett Bash-skript som accepterar dynamiska argument för att kontrollera om flera filer finns eller inte.

Om du är intresserad av Bash-programmering eller Linux-systemadministration, vi har ett komplett avsnitt som är dedikerat till det på webbplatsen, så se till att kolla in det!

bash

Lämna ett svar

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *