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. |