Tarkista, onko tiedosto olemassa

Useimmiten saatamme löytää tilanteen, jossa joudumme ehkä suorittamaan toiminnon, joka tarkistaa onko tiedosto olemassa vai ei.

Bashissa voimme käyttää ”testikomentoa” tarkistamaan, onko tiedosto olemassa, ja määrittämään tiedoston tyypin.

Seuraavassa on testikomennon syntaksit, ja me voi käyttää mitä tahansa seuraavista komennoista:

Meidän on käytettävä yhtä hakasulaketta ”[”, jotta komentosarjamme voidaan tehdä kannettavaksi kaikille POSIX-kuoreille. Testikomennon päivitetty versio sisältää kaksoissulkeet ”[[”, jota tuetaan useimmissa nykyaikaisissa järjestelmissä, jotka käyttävät oletuskuorena Bash-, Zsh- ja Ksh-tiedostoja.

Tarkista, onko tiedosto olemassa

Tarkistettaessa, onko tiedosto olemassa, yleisimmin käytetyt tiedosto-operaattorit ovat -e ja -f. ”-E” -vaihtoehtoa käytetään tarkistamaan, onko tiedosto olemassa tyypistä riippumatta, kun taas ”-f” -vaihtoehtoa käytetään palauttamaan todellinen arvo vain, jos tiedosto on tavallinen tiedosto (ei hakemisto tai laite). / p>

Yleisin tapa tarkistaa onko tiedosto olemassa vai ei, on käyttää testikomentoa lausekkeen ”if conditional” kanssa.

Seuraavassa on esimerkkejä tarkistamaan, onko ”read_file”. txt ”-tiedosto on olemassa:

Tapa 1

Tapa 2

Tapa 3

Tulos

Kaikkien kolmen menetelmän tulos on seuraava, koska hakemistossa on tiedosto (read_file.txt):

read_file.txt exist

Jos haluamme suorittaa toiminnon, joka antaa tuloksen sen perusteella, onko tiedosto olemassa vai ei, voimme käyttää if / then-rakennetta seuraava tapa:

Esimerkki

Tulos

read_file.txt exist

Voimme käyttää testikomentoa myös ilman if-käskyä. Voimme käyttää mitä tahansa seuraavista tavoista:

Tapa 1

Tapa 2

Tapa 3

Tulos

Kaikkien kolmen menetelmän tulos on seuraava, koska hakemistossa on tiedosto (read_file.txt):

read_file.txt exist

Esimerkki

Toisin kuin & &, lauseke ||: n jälkeen operaattori suoritetaan vain, jos testikomennon poistumistila on ”false”.

Esimerkki

Output

read_file.txt exist

Nämä ovat Bashin yleisesti käytettyjä tapoja tarkistaa, onko tiedosto olemassa vai ei.

Tarkista, onko hakemistoa olemassa

Operaattori ”-d” antaa meille mahdollisuuden testata, onko tiedosto hakemisto vai ei.

Seuraavassa kuvataan tapoja tarkistaa, onko Javatpoint-hakemisto olemassa:

Tapa 1

Menetelmä 2

Huomaa: Voimme käyttää myös kaksoissulkeita ”[[” yhden hakasulun ”[” sijasta .

Tulos

Molempien yllä olevien menetelmien tulos on sama kuin alla, koska määritetyssä paikassa on hakemisto (nimeltä Javatpoint):

Javatpoint is a directory

Tarkista, jos tiedostoa ei ole

Testilauseke voidaan hylätä käyttämällä huutomerkkiä (! -logical EI -operaattori). Katso seuraava esimerkki:

Esimerkki

Yllä oleva komentosarja voidaan kirjoittaa myös seuraavasti:

Tulos

missing_read_file.txt unavailable

Tiedostotestioperaattorit

Testikomennot sisältävät seuraavat tiedostooperaattorit, joiden avulla voimme testi tietyntyyppisille tiedostoille:

-b FileReturns ”True”, jos TIEDOSTO on olemassa lohkona erityinen tiedosto.
-c FileReturns ”True”, jos TIEDOSTO on olemassa erikoismerkkitiedostona.
-d FileReturns ”True”, jos TIEDOSTO on olemassa hakemistona.
-e FileReturns ”True ”jos TIEDOSTO on tiedostona, tyypistä riippumatta (solmu, hakemisto, socket jne.).
-f FileReturns ” True ” jos TIEDOSTO on olemassa tavallisena tiedostona (ei hakemistona tai laitteena).
-G FileReturns ”True”, jos TIEDOSTO on olemassa ja sisältää sama ryhmä kuin käyttäjä suorittaa komentoa ja.
-h FileReturns ”True”, jos TIEDOSTO on olemassa symbolisena linkkinä.
-g FileReturns ”True”, jos TIEDOSTO on olemassa ja sisältää set-group-id (sgid) -lippusarjan.
-k FileReturns ”True”, jos TIEDOSTO on olemassa ja sisältää tahmean bittilippujoukon.
-L FileReturns ”True”, jos FILE on symbolinen linkki.
-O FileReturns ”True”, jos TIEDOSTO on olemassa ja sen omistaa komentoa suorittava käyttäjä.
-p FileReturns ”True”, jos TIEDOSTO on olemassa putkena.
– r FileReturns ”True”, jos TIEDOSTO on olemassa luettavana tiedostona.
-S FileReturns ”True”, jos FILE on olemassa pistorasiana.
-s FileReturns ”True”, jos TIEDOSTO on olemassa ja sen koko ei ole nolla.
-u FileReturns ”True”, jos TIEDOSTO on olemassa, ja set-user-id (suid) -lippu on asetettu.
-w FileReturns ”True”, jos TIEDOSTO on olemassa kirjoitettavana tiedostona.
-x FileReturns ”True”, jos FILE on olemassa suoritettava tiedosto.

Write a Comment

Sähköpostiosoitettasi ei julkaista. Pakolliset kentät on merkitty *