Bash Tarkista, onko tiedosto olemassa – Opetusohjelma ja komennot, joita käytetään

Bash-komentosarjaa luodessasi saatat kohdata tilanteen, jossa sinun on selvitettävä onko tiedostoa olemassa tehdä joitakin toimintoja sen kanssa. Voit käyttää testikomentoa tarkistaaksesi onko tiedosto olemassa ja minkä tyyppinen se on.

Tässä opetusohjelmassa näytämme, kuinka voit tarkistaa, onko tiedosto olemassa Linux-käyttöjärjestelmissä.

Testikomennon perussyntaksi

Testikomennon perussyntaksi tarkistamaan, onko tiedosto olemassa alla olevan kuvan mukaisesti:

test -e file

Tai

test -f file

Missä:

  • -e
    Tämä vaihtoehto tarkistaa, onko tiedosto olemassa tyypistä riippumatta.
  • -f
    Tämä vaihtoehto tarkistaa, onko tiedosto olemassa vain, jos TIEDOSTO on tavallinen tiedosto.

Testikomennon man-sivun pitäisi näkyä alla olevan kuvan mukaisesti:

man test

Sinun pitäisi nähdä seuraava näyttö :

Testaa, onko tiedosto olemassa komentorivillä

Tässä osiossa näytämme sinulle kuinka tarkistaa, onko tiedosto olemassa komentorivillä:

Suorita seuraava komento tarkistaaksesi, onko tiedosto / etc / fstab olemassa (T rue):

test -f /etc/fstab

Suorita sitten seuraava komento asettaaksesi poistumiskoodiksi 0 tai 1 aina kun testi onnistui tai ei.

echo $?

Tulos:

0

Lähtö on 0, mikä tarkoittaa, että tiedosto / etc / fstab on olemassa.

Voit myös tarkista, onko tiedosto olemassa seuraavan komennon avulla:


echo $0

Tulos:

0

Suorita seuraavaksi seuraava komento testataksesi, onko tiedosto / etc / fabab olemassa ( Väärä).

test -f /etc/fabab
echo $?

Tulos:

1

Lähtö on 1, mikä tarkoittaa, että tiedostoa / etc / fabab ei ole olemassa.

Sinä voi myös testata, onko tiedosto /etc/rc.local olemassa, tai ei käytä bashin ehdollista suoritusta alla olevan kuvan mukaisesti:

test -f /etc/rc.local && echo "Exists" || echo "Not Exists"

Tai

&& echo "Exists" || echo "Not Exists"

Jos tiedosto nimeltä /etc/rc.local on olemassa, sinun pitäisi nähdä seuraava tulos:

Exists

Voit myös tarkistaa, onko useita tiedostoja olemassa vai ei, käyttämällä yhtä komentoa:

&& echo "both files exist"

Tai

test -f /etc/passwd -a -f /etc/crontab && echo "both files exist"

Sinun pitäisi nähdä seuraava tulos:

both files exist

Testaa, onko tiedosto olemassa Bashissa

Tässä osassa luomme bash-komentosarjan ja tarkistamme, onko tiedosto olemassa vai ei, tulostamalla viestin.

Luo, luo tiedosto test.sh ja tarkista onko tiedosto /etc/rc.local on olemassa tai ei:

nano test.sh

Lisää seuraavat rivit:

#!/bin/bash
FILE=/etc/rc.local
if ; then
echo "The file "$FILE" exists."
else
echo "The file "$FILE" is not exists."
fi

Tallenna ja sulje tiedosto ja suorita komentosarja seuraavalla komennolla:

bash test.sh

Sinun pitäisi nähdä seuraava tulos:

The file "/etc/rc.local" exists.

Luodaan nyt tiedosto test.sh ja testataan, onko tiedosto / etc / rc.localad ei ole olemassa:

nano test.sh

Lisää seuraavat rivit:

#!/bin/bash
FILE=/etc/rc.localad
if ; then
echo "The file "$FILE" exists."
else
echo "The file "$FILE" is not exists."
fi

Tallenna ja sulje tiedosto ja suorita komentosarja seuraavalla komennolla:

bash test.sh

Sinun pitäisi nähdä seuraava tulos:

The file "/etc/rc.localad" is not exists.

Voit myös selvittää, onko tiedosto olemassa vai ei, ja suorittaa jonkin toiminnon sillä bash-komentosarjassa. p> Etsi esimerkiksi tiedosto nimeltä / etc / hosts ja kopioi se hakemistoon / opt, jos tiedosto on olemassa.

Luo niin tekemällä tiedosto nimeltä test.sh:

nano test.sh

Lisää seuraavat rivit:

FILE=/etc/hosts
if ; then
cp $FILE /opt
fi

Tallenna ja sulje tiedosto ja suorita komentosarja seuraavalla komennolla:

Testaa nyt / opt-hakemisto seuraavalla komennolla:

ls /opt/hosts

Sinun pitäisi nähdä hosts-tiedosto seuraavassa lähdössä:

/opt/hosts

Voit käyttää myös ilmausta! tarkistaaksesi, onko tiedostoa olemassa.

Suorita esimerkiksi seuraava komento tarkistaaksesi, ettei tiedostoa / etc / hosting ole olemassa:

&& echo "File does not exist"

Tai

test ! -f /etc/hosting && echo "File does not exist"

Sinun pitäisi nähdä seuraava tulos:

File does not exist

Testaa, onko hakemisto olemassa

Voit myös selvittää, onko hakemisto olemassa vai ei, käyttämällä -d-vaihtoehtoa.

Esimerkiksi, onko hakemisto / etc / apache2 olemassa vai ei.

&& echo "Directory is exists"

Tai

test -d /etc/apache2 && echo "Directory is exists"

Sinun pitäisi nähdä seuraava tulos:

Directory is exists

Voit myös luoda bash-komentosarjan ehdollisilla lausekkeilla tarkistaaksesi, onko hakemisto olemassa vai ei.

Luo tiedosto test.sh kuten alla on esitetty:

nano test.sh

Lisää seuraavat rivit:

Tallenna ja sulje tiedosto, kun olet valmis. Anna sitten oikea käyttöoikeus seuraavalla komennolla:

chmod 755 test.sh

Testaa seuraavaksi, onko hakemisto / etc / nginx käytettävissä vai ei seuraavalla komennolla:

./test.sh /etc/nginx

Sinun pitäisi nähdä seuraava tulos:

Directory /etc/nginx/ exists.

Testaa seuraavaksi, onko hakemisto / etc / linux käytettävissä vai ei, seuraavalla komennolla:

./test.sh /etc/linux

Sinun pitäisi nähdä seuraava tulos:

Directory /etc/linux does not exists

Bash-tiedostojen testausoperaattorit

Seuraavat tiedostojen testausoperaattorit auttavat sinua tarkistamaan, onko tiedostoa olemassa ja onko sillä erityistyyppejä:

  • -b
    TIEDOSTO on olemassa ja se on erityinen lohko
  • -c
    TIEDOSTO on olemassa ja se on erityinen merkki
  • -d
    TIEDOSTO on olemassa ja on hakemisto
  • -e
    FILE on olemassa
  • -f
    FILE on olemassa ja on tavallinen tiedosto
  • -g
    FILE on olemassa ja on set-group-ID
  • -G
    TIEDOSTO ex on olemassa ja sen omistaa tehokas ryhmätunnus.
  • -h
    TIEDOSTO on olemassa ja se on symbolinen linkki (sama kuin -L).
  • -k
    TIEDOSTO on olemassa ja on sen tahmea bittijoukko
  • -L
    TIEDOSTO on olemassa ja se on symbolinen linkki (sama kuin -h)
  • -O
    TIEDOSTO on olemassa ja tosiasiallisen käyttäjän omistuksessa Tunnus
  • -p
    TIEDOSTO on olemassa ja se on nimetty putki
  • -r
    TIEDOSTO on olemassa ja lukuoikeus myönnetään
  • -s
    FILE on olemassa ja sen koko on suurempi kuin nolla
  • -S
    FILE on olemassa ja se on liitäntä
  • -u
    FILE on olemassa ja sen set-user-ID-bitti on asetettu
  • -w
    FILE on olemassa ja kirjoitusoikeus myönnetään
  • -x
    FILE on olemassa ja suoritus (tai haku) lupa myönnetään

Päätelmä

Leave a Reply

Vastaa

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