Hvordan sjekke om det finnes en fil i bash

How Check If File Exists Bash



Det er flere måter å kontrollere tilgjengeligheten av en fil i Linux. Testkommandoen i bash scripting er en av de viktigste tilnærmingene for å kontrollere en fils eksistens.
Fokuset i denne veiledningen er å diskutere eksistensen av en fil i systemet ditt gjennom bash scripting:

Slik kontrollerer du fileksistens ved hjelp av bash scripting:

1) Ved å skrive inn filnavnet i terminalen:







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



$ta påtestfile.sh

Navnet på filen jeg opprettet er testfile.sh, utvidelsen .sh indikerer shell -skriptfilen:







Åpne testfile.sh i en hvilken som helst tekstredigerer. Skriv deretter skriptet, lagre det ved å trykke lagre.

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



Bruk -f for å kontrollere filens eksistens.

Skriv skriptet nedenfor:

#!/bin/bash
kastet ut 'Skriv inn filnavnet ditt'
lesenyfil1
hvis [ -f '$ newfile1' ]
deretter
kastet ut 'Filen er funnet'
ellers
kastet ut 'Filen ble ikke funnet'
være

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

./filnavn.sh

Tillatelse nektet melding vil bli vist i terminalen.

Gjør det kjørbart ved å utføre kommandoen nedenfor:

$chmod+ x testfil.sh

Skriv inn filnavnet, og det skrives ut:

2) Ved å skrive inn filnavnet mens du skriver skriptet:
En annen måte å finne en fil ved å oppgi filnavnet mens du skriver skriptet. Vi har tre måter å kontrollere tilgjengeligheten av filen. Den første bruker testkommandoen, den andre bruker if med et uttrykk i firkantede parenteser, og den tredje er også med if, men doble firkantede parenteser som angitt nedenfor:

  1. test UTTRYKK.
  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
kastet ut '$ filhar funnet.'
ellers
kastet ut '$ filer ikke funnet '
være

Produksjon:

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

2) hvis [Uttrykk]

Kopier følgende skript for å sjekke om filen finnes eller ikke:

#!/bin/bash
filnavn= minfil.txt
hvis [ -f '$ filnavn' ];
deretter
kastet ut '$ filnavnhar funnet.'
ellers
kastet ut 'filnavn er ikke funnet'
være

Produksjon:

3) hvis [[Uttrykk]]

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

#!/bin/bash
filnavn= testfil
hvis [[ -f '$ filnavn' ]];
deretter
kastet ut '$ filnavnhar funnet.'
ellers
kastet ut '$ filnavner ikke funnet '
være

Produksjon:

Slik sjekker du katalogen:

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

Bruke -d flagg for å kontrollere eksistensen av en katalog.

I skriptet nedenfor er dir11 variabelen der du lagrer filen du finner; i dette eksemplet vil jeg sjekke katalognavn testDir finnes eller ikke.

#!/bin/bash
dir11= testDir
hvis [ -d '$ dir11' ]
deretter
kastet ut 'Katalogen har funnet'
ellers
kastet ut 'Katalogen er ikke funnet'
være

Produksjon:

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

#!/bin/bash
kastet ut 'skriv inn katalognavnet.'
leseDir1
hvis [ -d 'Dir1' ]
deretter
kastet ut 'katalogen er funnet'
ellers
kastet ut 'katalogen har ikke funnet'
være

Produksjon:

Kontrollerer filen uten å bruke if -setningen:

Testkommandoen kan utføres uten if -setningen. Den vil bare vise utdata hvis filen finnes; ellers ville det ikke være noen utgang:

Skriv manus:

  1. test -fmyfile.txt&& kastet ut 'filen er funnet'

  2. [ -fmyfile.txt] && kastet ut '$ filhar blitt funnet.'

  3. [[ -fmyfile.txt]] && kastet ut '$ filhar blitt funnet.'

Produksjon:

Kontrollere katalogen uten å bruke if -setningen:

Bruk utsagnene nedenfor for å kontrollere at det finnes en katalog eller ikke:

  1. [[ -dtestDir]] && kastet ut 'katalog eksisterer'

  2. 2) [ -dtestDir] && kastet ut 'katalog eksisterer'

Produksjon:

Kontrollere flere filer/kataloger:

1) Kontroller flere filer med if -setninger:
Bruk -a -flagget for å kontrollere eksistensen av forskjellige filer i stedet for å bruke nestede if/else -setninger:

#!/bin/bash
hvis [ -fnew_file.txt-til -fnewfile.txt];deretter
kastet ut 'Begge filene eksisterer.'
være

En annen måte er:

#!/bin/bash
hvis [[ -fnew_file.txt&& -fnewfile.txt]];deretter
kastet ut 'Begge filene eksisterer.'
være

Produksjon:

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

  1. [[ -fnew_file.txt&& -fnewfile.txt]] && kastet utBegge filene avsluttes.

  2. [[ -fnew_file.txt&& -fnewfile.txt]] && kastet utBegge filene avsluttes.

Produksjon:

Konklusjon:

Denne artikkelen har vist hvordan du bruker bash scripting til å kontrollere en fil eller en katalog. Vi brukte forskjellige alternativer for å kontrollere tilgjengeligheten av en fil. For det første bruker vi testkommandoen med forskjellige flagg. Så lærte vi bruken av if, nestet if-else, og uten if-setningene for å sjekke filen eller katalogen. Vi har også sett på hvordan du sjekker flere filer eller kataloger.