Hoe te controleren of een bestand of directory in Bash bestaat

Wanneer u met Bash- en shell-scripting werkt, moet u mogelijk controleren of een directory of een bestand bestaat wel of niet op uw bestandssysteem.

Op basis van deze voorwaarde kunt u het script verlaten of een waarschuwingsbericht voor de eindgebruiker weergeven.

Om te controleren of een bestand of een directory bestaat met Bash, ga je “Bash-tests” gebruiken.

In deze tutorial leer je hoe je kunt controleren of een bestand of directory bestaat in een Bash-script.

Inhoudsopgave

Controleer of bestand bestaat

Om te controleren of een bestand in Bash bestaat , je moet de optie “-f” gebruiken (voor bestand) en het bestand specificeren dat je wilt controleren.

Laten we bijvoorbeeld zeggen dat je wilt controleren of het bestand “/ etc / passwd” op je bestandssysteem bestaat of niet.

In een script zou je het volgende schrijven als statement.

Bestaan van bestanden controleren met kortere formulieren

In sommige gevallen ben je misschien geïnteresseerd in het controleren of een bestand al dan niet rechtstreeks in je Bash-shell bestaat.

Om te controleren of een bestand in Bash bestaat met behulp van kortere formulieren, specificeert u de “-f” optie tussen haakjes en voegt u het commando toe dat u wilt uitvoeren als het lukt.

Als u het eerder gebruikte voorbeeld gebruikt en u wilt controleren of het bestand “/ etc / passwd” bestaat met kortere formulieren, schrijft u het volgende commando

Dus hoe werkt dit commando?

Kortere formulieren zijn nauw verwant aan exitstatussen.

Als je een commando op Bash uitvoert, wordt het altijd afgesloten met een foutstatus: 0 voor fouten en getallen groter dan 0 voor fouten (1, 2 .. 6 enzovoort)

In dit geval zal de syntaxis “& &” controleren of de exitstatus van het commando aan de linkerkant is gelijk aan nul: als dit het geval is, zal het het commando aan de rechterkant uitvoeren, anders zal het het niet uitvoeren.

Protip: je kunt gebruik “echo $ {?}” om de exitstatus van de laatste opdrachtuitvoering te zien

Meerdere bestanden controleren

In in sommige gevallen wil je misschien controleren of er meerdere bestanden op je bestandssysteem staan of niet.

Om te controleren of er meerdere bestanden in Bash bestaan, gebruik je de “-f” vlag en specificeer je de bestanden die gecontroleerd moeten worden gescheiden door de “& &” operator.

Controleer of bestand niet bestaat

Aan de andere kant wil je misschien controleren of een bestand niet bestaat op je bestandssysteem.

Om te controleren of een bestand niet bestaat als je Bash gebruikt, moet je de “!” symbool gevolgd door de “-f” optie en het bestand dat u wilt controleren.

Evenzo kunt u kortere formulieren gebruiken als u snel wilt controleren als een bestand niet direct in uw terminal bestaat.

Merk op dat het ook mogelijk is om te controleren of een bestand niet bestaat met de “||” operator.

De “||” operator zal het commando aan de rechterkant uitvoeren als en alleen als het commando aan de linkerkant faalt (d.w.z. het wordt afgesloten met een status groter dan nul).

Om te testen of een bestand niet bestaat met de “||” operator, controleer gewoon of het bestaat met de “-f” vlag en specificeer het commando dat uitgevoerd moet worden als het mislukt.

Check If Directory Exists

Om te controleren of een directory in Bash bestaat, moet je de “-d” optie gebruiken en de directorynaam specificeren die gecontroleerd moet worden.

Laten we als voorbeeld zeggen dat u met Bash wilt controleren of de directory / etc op uw systeem bestaat.

Om het bestaan ervan te controleren, zou u het volgende Bash-script schrijven

Wanneer u dit script uitvoert, krijgt u de volgende uitvoer

Controleer het bestaan van de directory met kortere formulieren

In sommige gevallen ben je misschien geïnteresseerd in het controleren of een map al dan niet direct in je Bash-shell bestaat.

Om te controleren of er een map in Bash bestaat met kortere formulieren, specificeer de “-d” optie tussen haakjes en voeg het commando toe dat u wilt uitvoeren als het lukt.

Laten we zeggen dat u bijvoorbeeld wilt controleren of de map” / etc “bestaat.

Met de kortere syntaxis zou u het volgende commando schrijven.

Een compleet Bash-script maken

Als je merkt dat je meerdere keren per dag controleert of een bestand (of meerdere) bestaat of niet op je bestandssysteem, kan dat zijn handig om een script te hebben dat deze taak kan automatiseren.

In deze sectie ga je een Bash-script maken dat meerdere bestandsnamen kan aannemen en kan terugkeren als ze bestaan of niet.

Als dat niet het geval is, wordt een eenvoudig meldingsbericht weergegeven op de standaarduitvoer.

Maak een nieuw Bash-script en maak het uitvoerbaar met chmod.

Hier is de inhoud van het script dat moet worden gebruikt om dynamisch te controleren of er bestanden bestaan.

Sla je script op en voeg de map “bin” die je zojuist hebt gemaakt toe aan je PATH-omgevingsvariabele.

Nu uw script overal op het systeem toegankelijk is, kunt u uw script oproepen en de controle starten ing als bestanden bestaan of niet.

Geweldig!

Je hebt een aangepaste versie gemaakt om te controleren of er bestanden op je bestandssysteem bestaan of niet.

Conclusie

In deze tutorial heb je geleerd hoe je kunt controleren of een bestand bestaat of geen Bash-tests en korte Bash-syntaxis gebruikt.

Op dezelfde manier heb je geleerd hoe het mogelijk is om te verifiëren of een directory bestaat.

Ten slotte heb je een compleet Bash-script geschreven dat dynamische argumenten accepteert om te controleren of er meerdere bestanden bestaan of niet.

Als je bent geïnteresseerd in Bash-programmering of in Linux Systeembeheer, we hebben er een volledige sectie aan gewijd op de website, dus zorg ervoor dat je het bekijkt!

bash

Geef een reactie

Het e-mailadres wordt niet gepubliceerd. Vereiste velden zijn gemarkeerd met *