Hvordan sjekke om filen eller katalogen eksisterer i Bash

Når du arbeider med Bash og shell-skripting, må du kanskje sjekke om en katalog eller en fil eksisterer eller ikke på filsystemet.

Basert på denne tilstanden kan du avslutte skriptet eller vise en advarsel for sluttbrukeren for eksempel.

For å sjekke om en fil eller en katalog finnes med Bash, skal du bruke «Bash-tester».

I denne opplæringen skal du lære hvordan du sjekker om en fil eller katalog finnes i et Bash-skript.

Innholdsfortegnelse

Kontroller om filen eksisterer

For å sjekke om det finnes en fil i Bash , må du bruke alternativet «-f» (for fil) og spesifisere filen du vil sjekke.

La oss for eksempel si at du vil sjekke om filen «/ etc / passwd» finnes på filsystemet ditt eller ikke.

I et skript vil du skrive følgende hvis uttalelse.

Kontroller fileksistensen ved hjelp av kortere skjemaer

I noen tilfeller kan du være interessert i å sjekke om en fil eksisterer eller ikke direkte i Bash-skallet.

For å sjekke om en fil eksisterer i Bash ved hjelp av kortere skjemaer, spesifiser du alternativet «-f» i parentes og legg til kommandoen du vil kjøre hvis den lykkes.

Ved å bruke eksemplet som ble brukt før, hvis du vil sjekke om «/ etc / passwd» -filen eksisterer ved hjelp av kortere skjemaer, skriver du følgende kommando

Så hvordan fungerer denne kommandoen?

Kortere skjemaer er nært knyttet til avslutningsstatus.

Når du kjører en kommando på Bash, kommer den alltid ut med feilstatus: 0 for feil og tall større enn 0 for feil (1, 2 .. 6 og så videre)

I dette tilfellet vil «& &” syntaksen kontrollere om utgangsstatusen til kommandoen til venstre er lik null: hvis dette er tilfelle, vil den utføre kommandoen til høyre, ellers vil den ikke utføre den.

Protip: du kan bruk «echo $ {?}» for å se avslutningsstatus for den siste kommandokjøringen

Kontrollere flere filer

I i noen tilfeller kan det være lurt å sjekke om det finnes flere filer på filsystemet ditt eller ikke.

For å sjekke om det finnes flere filer i Bash, bruk «-f» -flagget og spesifiser filene som skal kontrolleres. atskilt med operatøren «& &”.

Sjekk om filen ikke eksisterer

På den annen side vil du kanskje sjekke om en fil ikke finnes på filsystemet.

For å sjekke om en fil ikke eksisterer ved hjelp av Bash, må du bruke «!» symbol etterfulgt av alternativet «-f» og filen du vil sjekke.

På samme måte kan du bruke kortere skjemaer hvis du raskt vil sjekke hvis en fil ikke eksisterer direkte i terminalen din.

Merk at det også er mulig å sjekke om en fil ikke eksisterer ved hjelp av «||» operatør.

«||» operatøren vil utføre kommandoen til høyre hvis og bare hvis kommandoen til venstre mislykkes (dvs. avsluttes med en status større enn null).

Å teste om en fil ikke eksisterer ved å bruke «||» sjekk om den eksisterer ved hjelp av «-f» -flagget og spesifiser kommandoen som skal kjøres hvis den mislykkes.

Sjekk om katalogen eksisterer

For å sjekke om det finnes en katalog i Bash, må du bruke alternativet «-d» og spesifisere katalognavnet som skal kontrolleres.

La oss som et eksempel si at du vil sjekke med Bash om katalogen / etc finnes på systemet ditt.

For å sjekke eksistensen, vil du skrive følgende Bash-skript

Når du utfører dette skriptet, får du følgende utdata

Sjekk katalogeksistens ved hjelp av kortere skjemaer

I noen tilfeller kan du være interessert i å sjekke om det finnes en katalog eller ikke direkte i Bash-skallet.

For å sjekke om det finnes en katalog i Bash ved å bruke kortere skjemaer, spesifiser alternativet «-d» i parentes og legg til kommandoen du vil kjøre hvis den lykkes.

La oss si at du for eksempel vil sjekke om katalogen» / etc «eksisterer.

Ved å bruke den kortere syntaksen vil du skrive følgende kommando.

Opprette et komplett Bash-skript

Hvis du finner ut at du sjekker flere ganger per dag om en fil (eller flere) finnes eller ikke på filsystemet ditt, kan det være praktisk å ha et skript som kan automatisere denne oppgaven.

I denne delen skal du lage et Bash-skript som kan ta flere filnavn og returnere hvis de eksisterer eller ikke.

Hvis de ikke gjør det, vises en enkel varslingsmelding på standardutgangen.

Opprett et nytt Bash-skript og gjør det kjørbart ved hjelp av chmod.

Her er innholdet i skriptet som skal brukes til å dynamisk kontrollere om filer eksisterer.

Lagre skriptet og legg til «bin» -mappen du nettopp opprettet i PATH-miljøvariabelen.

Nå som skriptet ditt er tilgjengelig uansett hvor du er på systemet, kan du ringe skriptet ditt og begynne å sjekke ing hvis filer eksisterer eller ikke.

Awesome!

Du opprettet en egendefinert for å sjekke om filer finnes på filsystemet ditt eller ikke.

Konklusjon

I denne opplæringen lærte du hvordan du kan sjekke om en fil eksisterer eller ikke bruker Bash-tester og Bash kort syntaks.

Tilsvarende lærte du hvordan det er mulig å verifisere om en katalog eksisterer.

Til slutt har du skrevet et komplett Bash-skript som godtar dynamiske argumenter for å sjekke om flere filer eksisterer eller ikke.

Hvis du er interessert i Bash-programmering eller Linux-systemadministrasjon, vi har en komplett seksjon dedikert til det på nettstedet, så sørg for å sjekke det ut!

bash

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert. Obligatoriske felt er merket med *