Hvordan sjekke om det finnes en fil i bash

Hvordan sjekke om det finnes en fil i bash

Det er flere måter å sjekke tilgjengeligheten til en fil i Linux. "Test" -kommandoen i bash -skripting er en av de viktigste tilnærmingene til å sjekke filens eksistens.
Fokuset for denne guiden er å diskutere eksistensen av en fil i systemet ditt gjennom bash scripting:

Hvordan sjekke eksistens med filen ved hjelp av bash -skripting:

1) Ved å legge inn filnavnet i terminalen:

For det første må vi lage en bash-skriptfil, bruke den nedenfor-nevnte kommandoen:

$ Touch TestFile.sh

Navnet på filen jeg opprettet er “Testfile.sh ”,“.SH ”utvidelse indikerer Shell -skriptfilen:

Åpne “Testfilen.SH ”i hvilken som helst tekstredigerer. Skriv deretter skriptet, lagre det ved å trykke på “Lagre”.

En måte er å finne en fil ved å be om et filnavn fra brukeren i terminalen.

Bruk "-f”For å sjekke filens eksistens.

Skriv skriptet nedenfor:

#!/bin/bash
ekko "Skriv inn filnavnet ditt"
Les Newfile1
if [-f "$ newfile1"]
deretter
ekko "-filen blir funnet"
ellers
ekko "-filen er ikke funnet"
fi

Gå tilbake til terminalen og kjør filen for å skrive ut utdata:

./filnavn.sh

Tillatelse nektet melding vil bli vist i terminalen.

Gjør det kjørbar ved å utføre den nedenfor-nevnte kommandoen:

$ chmod +x testfile.sh

Skriv inn filnavnet, så skriver det ut utdataene:

2) Ved å legge inn filnavnet mens du skriver skriptet:
En annen måte å finne en fil ved å gi filnavnet mens du skriver skriptet. Vi har tre måter å sjekke tilgjengeligheten til filen. Den første bruker “Test” -kommandoen, den andre bruker “IF” med et uttrykk i firkantede parenteser, og den tredje er også med "If", men doble firkantede parenteser som indikert nedenfor:

  1. “Testuttrykk.”
  2. “Hvis [uttrykk]”
  3. “Hvis [[uttrykk]]”

La oss forstå det med eksempler:

1) Test [uttrykk]
Kopier det gitte skriptet og lim det inn i redaktøren, lagre det:

#!/bin/bash
filnavn = fil1
hvis test -f "$ filnavn";
deretter
Echo "$ -filen har funnet.""
ellers
ekko "$ fil er ikke funnet"
fi

Produksjon:

Ettersom det ikke er noen slik fil i katalogen min, viser koden "Filen er ikke funnet" -meldingen ".

2) Hvis [uttrykk]

Kopier følgende skript for å sjekke IF -filen eksisterer eller ikke:

#!/bin/bash
filnavn = myfile.tekst
hvis [-f "$ filnavn"];
deretter
ekko "$ filnavn har funnet.""
ellers
ekko "filnavn er ikke funnet"
fi

Produksjon:

3) Hvis [[uttrykk]]

Kopier det nedenfor-skrevne skriptet og lim det inn på terminalen:

#!/bin/bash
filnavn = testfile
hvis [[-f "$ filnavn"]];
deretter
ekko "$ filnavn har funnet.""
ellers
ekko "$ filnavn er ikke funnet"
fi

Produksjon:

For å sjekke katalogen:

3) Ved å legge inn katalognavnet mens du skriver et skript

Bruke "-d”Flagg for å sjekke eksistensen av en katalog.

I det nedenfor-nevnte skriptet er “Dir11” variabelen du lagrer filen den du finner; I dette eksemplet vil jeg sjekke katalognavnet “testdir” eksisterer eller ikke.

#!/bin/bash
DIR11 = TESTDIR
if [-d "$ dir11"]
deretter
Echo "Directory har funnet"
ellers
ekko "katalog er ikke funnet"
fi

Produksjon:

2) Ved å legge inn filnavnet i terminalen:
Når du kjører kommandoen i terminalen for å sjekke om katalogen eksisterer eller ikke, må du oppgi katalognavnet du søker etter:

#!/bin/bash
ekko "Skriv katalognavnet ditt.""
Les Dir1
hvis [-d "Dir1"]
deretter
ekko "katalog er funnet"
ellers
Echo "Directory har ikke funnet"
fi

Produksjon:

Sjekk filen uten å bruke "if" -uttalelsen:

Kommandoen "Test" kan utføres uten "hvis" -uttalelsen. Den vil bare vise utdata hvis filen eksisterer; Ellers ville det ikke være noen produksjon:

Skriv skript:

  1. Test -F MyFile.txt && ekko "Fil er funnet"
  2. [-f myfile.txt] && ekko "$ fil er funnet.""
  3. [[-f myfile.txt]] && ekko "$ fil er funnet.""

Produksjon:

Sjekk katalogen uten å bruke "if" -uttalelsen:

Bruk de nedenfor-nevnte utsagnene for å sjekke en katalog eksisterer eller ikke:

  1. [[-d testdir]] && Echo "Directory eksisterer"
  2. 2) [-D testdir] && Echo "Directory eksisterer"

Produksjon:

Kontrollere flere filer/kataloger:

1) Kontroller flere filer med "IF" -uttalelser:
Bruk "-a" -flagget for å sjekke eksistensen av forskjellige filer i stedet for å bruke nestede "hvis/ellers" uttalelser:

#!/bin/bash
hvis [-f new_file.txt -a -f newfile.tekst ]; deretter
ekko "Begge filene eksisterer.""
fi

En annen måte er:

#!/bin/bash
hvis [[-f new_file.txt && -f newfile.tekst ]]; deretter
ekko "Begge filene eksisterer.""
fi

Produksjon:

2) Kontroller flere filer uten å bruke "hvis" -uttalelsen:
Bruk følgende uttalelse for å sjekke flere filer samtidig 1 uten å bruke "if":

  1. [[-f new_file.txt && -f newfile.txt]] && ekko “Begge filene går ut.”
  2. [[-f new_file.txt && -f newfile.txt]] && ekko “Begge filene går ut.”

Produksjon:

Konklusjon:

Denne artikkelen har vist hvordan du bruker bashskripting for å sjekke en fil eller en katalog. Vi brukte forskjellige alternativer for å sjekke tilgjengeligheten til en fil. For det første bruker vi “Test” -kommandoen med forskjellige flagg. Så lærte vi bruken av "If", nestet "if-elv", og uten "if" -uttalelsene for å sjekke filen eller katalogen. Vi så også på hvordan vi kan sjekke flere filer eller kataloger.