Creative Saplings

Kuinka tarkistaa, onko tiedosto Bashissa tai Shellissä (esimerkkejä)

helmikuu 13, 2021
No Comments

Sisällysluettelo

Tässä opetusohjelmassa käsittelen erilaisia määritteitä, joita voit käyttää bash- tai shell-komentosarjoissa tiedostojen ja hakemistojen tarkistamiseen. Voit käyttää bash-ehdollisia lausekkeita ] -näppäimillä tai testata -toimintoa tarkistaaksesi, onko tiedosto olemassa.

Tulemme käytä bash if and else -operaattoria kaikissa esimerkeissä, joten suosittelen sinua lukemaan: Bash if else käyttöopas ehdottomille aloittelijoille

1. Bash / Shell: Tarkista onko tiedosto olemassa ja onko se tavallinen tiedosto

Tässä osassa on esimerkkejä siitä, onko bashissa säännöllinen tiedosto.

1.1: Menetelmä 1: Yksittäisten tai kaksoissulkeiden käyttö

Tuplasulkeiden käyttö ]

#!/bin/bashFILE="/etc/passwd"if ];then echo "$FILE exists"else echo "$FILE doesn"t exist"fi

Yksittäisten sulkeiden käyttö

#!/bin/bashFILE="/etc/passwd"if ;then echo "$FILE exists"else echo "$FILE doesn"t exist"fi

1.2: Menetelmä 2: Testikomennon käyttäminen

test -komennolla tarkistetaan tiedostotyypit ja verrataan arvot.

#!/bin/bashFILE="/etc/passwd"if test -f $FILE; then echo "$FILE exists"else echo "$FILE missing"fi

1.3: Menetelmä 3: Yksirivinen

Tässä esimerkissä voidaan käyttää yksittäisiä tai kaksoissulkeita. Suosittelen aina käyttämään kaksoissulkeita, kun kirjoitat yhtä linjakoodia kuoressa, koska se minimoi varoituksen saamisen konsoliin sanojen jakamisen aikana.

#!/bin/bashFILE="/etc/passwd"] && echo "$FILE exists" || echo "$FILE missing"

Lauseke && jälkeen suoritetaan, jos MENESTYS. Jos ensimmäinen ehto palauttaa EPÄTOSI, suoritetaan lauseke ||.

Vastaavasti testikomennolla tarkistaaksesi, onko bash- tai shell-komentosarjassa säännöllistä tiedostoa yhdellä rivillä .

#!/bin/bashFILE="/etc/passwd"test -f $FILE && echo "$FILE exists" || echo "$FILE missing"

2. Bash / Shell: Tarkista onko tiedosto olemassa (tyhjä vai tyhjä)

Tarkista onko tiedosto olemassa ja jos se on tyhjä tai jos siinä on jonkin verran sisältöä, käytämme attribuuttia ”-s”

2.1: Menetelmä 1: Yksittäisten tai kaksoissulkeiden käyttö

Tarkista, onko tiedosto olemassa ja tyhjä vai tyhjä, hakasulkeilla ]

#!/bin/bashFILE="/etc/passwd"if ]; then echo "$FILE exists and not empty"else echo "$FILE doesn"t exist or is empty"fi

Tarkista onko tiedosto on olemassa ja tyhjä tai ei tyhjä käyttämällä hakasulkeita

if ; then echo "$FILE exists and not empty"else echo "$FILE doesn"t exist or is empty"fi

2.2: Menetelmä 2: Testikomennon käyttäminen

Testikomennon avulla yhdistämme -s -attribuutin tarkistaaksesi, tiedosto on olemassa ja se on tyhjä tai siinä on jonkin verran sisältöä:

2.3: Menetelmä 3: Yksirivinen

Voimme käyttää sekä kaksois- että yksittäisiä hakasulkeita tälle yhdelle linjalle, mutta kuten aiemmin sanoin, suosittelen kaksoissulkeiden käyttöä.

#!/bin/bashFILE="/etc/passwd"test -s $FILE && echo "$FILE exists and not empty" || echo "$FILE doesn"t exist or is empty"

Samoin testikomennon kanssa voimme käyttää && ja || operaattori tarkistaa tiedoston yksirivisellä komennolla komentotulkkikomentomme sisällä.

#!/bin/bashFILE="/etc/passwd"] && echo "$FILE exists and not empty" || echo "$FILE doesn"t exist or is empty"

3. Bash / Shell: Tarkista, onko hakemistoa olemassa

Toivon, että tiedät, että Linuxissa kaikki on tiedosto. Joten tällä tavalla hakemistoa pidetään myös tiedostona. Voimme käyttää ”-d” -määritettä tarkistaaksesi onko hakemisto olemassa shell-ohjelmoinnissa.

3.1: Menetelmä 1: kaksois- tai yksittäisten sulkeiden käyttö

Voimme käyttää -d -attribuuttia yksittäisissä tai kaksoissulkeissa ] tarkistaa jos hakemisto on olemassa.

#!/bin/bashDIR="/var/log"if ]; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

Vastaavasti tässä esimerkissä käytämme yksittäisiä hakasulkeita tarkistamaan, onko hakemisto esiasetettu shell-komentosarjassa.

#!/bin/bashDIR="/var/log"if ; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

3.2: Metodi-2: Testikomennon käyttäminen

Tässä esimerkissä käytämme testikomentoa varmistaaksemme, onko hakemisto läsnä vai ei, ennen kuin suoritamme tietyn tehtävän.

#!/bin/bashDIR="/var/log"if test -d $DIR; then echo "$DIR exists"else echo "$DIR doesn"t exist"fi

3.3: Menetelmä 3: Yksirivi

Tässä esimerkissä käytämme yhden ja kahden hakasulkeita yhden rivin muodossa tarkistamaan hakemistolle. Lauseke && -operaattorin jälkeen suoritetaan, jos ensimmäinen ehto on TOSI ja jos se on EPÄTOSI, || ehto ”-lauseke suoritetaan .

#!/bin/bashDIR="/var/log"] && echo "$DIR exists" || echo "$DIR doesn"t exist"

Suosittelen ] käyttöä sijaan tällaiselle yhdelle linjakoodille shell-ohjelmoinnissa.

Samoin kuin && ja ||, voimme tarkistaa testikomennolla jos hakemisto on olemassa

#!/bin/bashDIR="/var/log"test -d $DIR && echo "$DIR exists" || echo "$DIR doesn"t exist"

4. Bash / Shell: Tarkista, onko hakemisto olemassa (tyhjä vai tyhjä)

Shell-määritteitä ei ole kuten olen käyttänyt kaikissa muissa esimerkissä ja skenaarioissa tässä opetusohjelmassa.Mutta meillä on joitain hakkereita, joiden avulla voimme tarkistaa, onko hakemisto tyhjä vai ei.

4.1: Menetelmä 1: Luettele hakemiston sisältö ja vahvista

Tässä esimerkissä luetellaan hakemiston sisältö, estetään lähtö ja tarkistetaan sitten poistumiskoodin perusteella, onko hakemisto tyhjä tai sisältääkö sitä sisältö

#!/bin/bashDIR="/tmp"if ls -1qA $DIR | grep -q . ; then echo "$DIR is not -empty"else echo "$DIR is empty"fi

Voimme myös kääntää tämän asettamalla NOT (!) -ehdon. Joten se näyttäisi tältä:

#!/bin/bashDIR="/tmp"if ! ls -1qA $DIR | grep -q . ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

Lähtö olisi sama molemmissa esimerkkiskripteissä.

4.2: Metodi-2: Käyttäminen find-komento

Voimme käyttää find-komentoa ja estää sitten lähdön tarkistamalla, onko kohdehakemistossa sisältöä vai ei.

#!/bin/bashDIR="/tmp"if find -- "$DIR" -prune -type d -empty | grep -q . ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

4.3: Menetelmä 3: Luettele sisältö

Jälleen, kuten sanoin, koska ei ole helppoa tapaa tarkistaa, onko hakemisto tyhjä vai ei käytä joitain määritteitä, luetellaan hakemiston sisältö. Jos et saa tulostetta, hakemisto on tyhjä tai muuten tyhjä

#!/bin/bashDIR="/tmp"if ] ; then echo "$DIR is empty"else echo "$DIR is not-empty"fi

5. Bash / Shell: Luettelo testitiedoston määritteistä

Vastaavasti on olemassa paljon enemmän määritteitä, joita voit käyttää shell-komentosarjoissa eri tiedostotyyppien tarkistamiseen, kuten symboliset linkit, tiedostojen oikeudet jne.

määritteet Mitä se tekee?
-a FILE Tosi, jos FILE on olemassa
-b FILE Tosi, jos FILE on olemassa ja se on erityinen lohkotiedosto.
-c FILE Tosi, jos FILE on olemassa ja se on erityinen merkkitiedosto.
-d FILE Tosi, jos FILE on olemassa ja se on hakemisto.
Tosi, jos FILE on olemassa
-f FILE Tosi, jos FILE on olemassa ja se on säännöllinen tiedosto
-g FILE Tosi, jos FILE on olemassa ja sen set-group-id-bitti on asetettu
-h FILE Tosi, jos FILE on olemassa ja se on symbolinen linkki
-k FILE Tosi, jos FILE on olemassa ja sen ”tahmea” bitti on asetettu
-p FILE Tosi, jos FILE on olemassa ja on nimetty putki (FIFO)
-r FILE Tosi, jos FILE on olemassa ja luettavissa
-s FILE Tosi, jos FILE on olemassa ja sen koko on suurempi kuin nolla
-u FILE Tosi, jos FILE on olemassa ja sen set-user-id-bitti on asetettu
-w FILE Tosi, jos FILE on olemassa ja kirjoitettavissa
-x FILE Tosi, jos FILE on olemassa ja se voidaan suorittaa
-G FILE Tosi, jos FILE on olemassa ja sen omistaa todellinen ryhmätunnus
-L FILE Tosi, jos FILE on olemassa ja se on symbolinen linkki
-N FILE Tosi, jos FILE on olemassa ja sitä on muokattu viimeksi luettuasi
-o FILE Tosi, jos FILE on olemassa ja sen omistaa käyttäjätunnus
-S FILE Tosi, jos FILE on olemassa ja on socket
Tosi, jos FILE1 ja FILE2 viittaavat samaan laitteeseen ja inodinumerot
FILE1 -nt FILE2 Tosi, jos FILE1 on uudempi (muokkauspäivämäärän mukaan) kuin FILE2, tai jos FILE1 on olemassa ja FILE2 ei
FILE1 -ot FILE2 Tosi, jos FILE1 on vanhempi kuin FILE2, tai jos FILE2 on olemassa ja FILE1 ei

Päätelmä

Articles
Previous Post

Kuinka sanoa, että olet tervetullut ranskaksi

Next Post

Etäkäytön määrittäminen ja yhteyden muodostaminen SQL Server -esiintymää varten ApexSQL-työkaluilla

Vastaa Peruuta vastaus

Viimeisimmät artikkelit

  • Maailman parhaat valokuvauskoulut, 2020
  • Suvereenit kansalaiset vievät hallitustenvastaisen filosofiansa tielle
  • Stukkokorjauskustannusten opas
  • Muckrakers (Suomi)
  • Tarkka onkologia

Arkistot

  • helmikuu 2021
  • tammikuu 2021
  • joulukuu 2020
  • marraskuu 2020
  • lokakuu 2020
  • syyskuu 2020
  • Deutsch
  • Nederlands
  • Svenska
  • Norsk
  • Dansk
  • Español
  • Français
  • Português
  • Italiano
  • Română
  • Polski
  • Čeština
  • Magyar
  • Suomi
  • 日本語
  • 한국어
Proudly powered by WordPress | Theme: Fmi by Forrss.