Bash Ellenőrizze, hogy létezik-e fájl – Útmutató és parancsok

A bash parancsfájl létrehozása közben olyan helyzetbe kerülhet, hogy meg kell találnia, létezik-e fájl vagy sem hogy valamilyen műveletet hajtson végre vele. A teszt paranccsal ellenőrizheti, hogy létezik-e fájl és milyen típusú.

Ebben az oktatóanyagban megmutatjuk, hogyan ellenőrizhető, hogy létezik-e fájl a Linux-alapú operációs rendszerekben.

A tesztparancs alapszintaktikája

A tesztparancs alapvető szintaxisa a fájl létezésének ellenőrzésére az alábbiak szerint:

test -e file

Vagy

test -f file

Hol:

  • -e
    Ez az opció ellenőrzi, hogy létezik-e fájl a típustól függetlenül.
  • -f
    Ez az opció csak akkor ellenőrzi, hogy létezik-e fájl, ha a FÁJL rendes fájl.

A tesztparancs man oldalát az alábbiak szerint kell látnia:

man test

A következő képernyőt kell látnia :

Ellenőrizze, hogy a fájl létezik-e parancssor használatával

Ebben a szakaszban megmutatjuk Önnek a parancssor használatával ellenőrizheti, hogy létezik-e fájl:

Futtassa a következő parancsot, hogy ellenőrizze, létezik-e az / etc / fstab nevű fájl (T rue):

test -f /etc/fstab

Ezután futtassa a következő parancsot a kilépési kód 0 vagy 1 értékre állításához, amikor a teszt sikeres volt, vagy nem.

echo $?

Kimenet:

0

A kimenet 0, ami azt jelenti, hogy az / etc / fstab fájl létezik.

Ezenkívül a következő paranccsal ellenőrizheti, hogy létezik-e fájl:


echo $0

Kimenet:

0

Ezután futtassa a következő parancsot, hogy ellenőrizze, létezik-e az / etc / fabab fájl ( Hamis).

test -f /etc/fabab
echo $?

Kimenet:

1

A kimenet 1, ami azt jelenti, hogy az / etc / fabab fájl nem létezik.

Ön azt is tesztelheti, hogy létezik-e /etc/rc.local nevű fájl, vagy nem használja a bash feltételes végrehajtást, az alábbiak szerint:

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

Vagy

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

Ha létezik az /etc/rc.local nevű fájl, akkor a következő kimenetet kell látnia:

Exists

Egyetlen paranccsal ellenőrizheti, hogy több fájl létezik-e vagy sem:

&& echo "both files exist"

Vagy

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

A következő kimenetet kell látnia:

both files exist

Ellenőrizze, hogy a fájl létezik-e a Bash-ban

Ebben a szakaszban létrehozunk egy bash parancsfájlt, és üzenet nyomtatásával ellenőrizzük, hogy létezik-e fájl.

Hozza létre a test.sh nevű fájlt, és ellenőrizze, hogy van-e fájl Az /etc/rc.local létezik vagy sem:

nano test.sh

Adja hozzá a következő sorokat:

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

Mentse és zárja be a fájlt, majd futtassa a parancsfájlt a következő paranccsal:

bash test.sh

A következő kimenetet kell látnia:

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

Most hozzunk létre egy test.sh fájlt, és teszteljük, hogy az / etc / Az rc.localad nem létezik:

nano test.sh

Adja hozzá a következő sorokat:

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

Mentse és zárja be a fájlt, majd futtassa a parancsfájlt a következő paranccsal:

bash test.sh

A következő kimenetet kell látnia:

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

Megtalálhatja, hogy létezik-e egy fájl, vagy nem, és végezzen rajta valamilyen műveletet a bash szkriptben.

Keressen meg például egy / etc / hosts nevű fájlt, és másolja át az / opt könyvtárba, ha a fájl létezik.

Ehhez hozzon létre egy test.sh nevű fájlt:

nano test.sh

Adja hozzá a következő sorokat:

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

Mentse és zárja be a fájlt, majd futtassa a parancsfájlt a következő paranccsal:

Most tesztelje az / opt könyvtárat a következő paranccsal:

ls /opt/hosts

A hosts fájlt a következő kimenetben kell látnia:

/opt/hosts

Használhatja a kifejezést is! hogy ellenőrizze, hogy a fájl nem létezik-e.

Futtassa például a következő parancsot, hogy ellenőrizze, hogy a / etc / hosting fájl nem létezik-e:

&& echo "File does not exist"

Vagy

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

A következő kimenetet kell látnia:

File does not exist

Ellenőrizze, hogy létezik-e könyvtár

A -d kapcsolóval megtudhatja, hogy létezik-e könyvtár vagy sem.

Például ellenőrizze, hogy létezik-e az / etc / apache2 könyvtár.

&& echo "Directory is exists"

Vagy

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

A következő kimenetet kell látnia:

Directory is exists

Létrehozhat egy bash parancsfájlt feltételes kifejezésekkel annak ellenőrzésére, hogy létezik-e könyvtár vagy sem.

Hozzon létre egy test.sh nevű fájlt az alábbiak szerint:

nano test.sh

Adja hozzá a következő sorokat:

Ha elkészült, mentse és zárja be a fájlt. Ezután adjon megfelelő engedélyt a következő paranccsal:

chmod 755 test.sh

Ezután tesztelje, hogy az / etc / nginx könyvtár elérhető-e vagy sem a következő paranccsal:

./test.sh /etc/nginx

A következő kimenetet kell látnia:

Directory /etc/nginx/ exists.

Ezután tesztelje, hogy az / etc / linux könyvtár elérhető-e vagy sem, a következő paranccsal:

./test.sh /etc/linux

A következő kimenetet kell látnia:

Directory /etc/linux does not exists

Fájltesztelő operátorok a Bash-ban

A következő fájltesztelő operátorok segítenek ellenőrizni, hogy létezik-e “fájl” és van-e meghatározott típusa:

  • -b
    A FÁJL létezik és blokk speciális
  • -c
    A FÁJL létezik és karakterspecifikus
  • -d
    A FÁJL létezik és egy könyvtár
  • -e
    FILE létezik
  • -f
    FILE létezik, és egy rendes fájl
  • -g
    FILE létezik és set-group-ID
  • -G
    FÁJL ex létezik, és a tényleges csoportazonosító a tulajdonosa.
  • -h
    A FILE létezik, és szimbolikus link (ugyanaz, mint az -L).
  • -k
    FILE létezik és van ragacsos bitkészlete
  • -L
    FÁJL létezik, és szimbolikus link (ugyanaz, mint a -h)
  • -O
    A FÁJL létezik és a tényleges felhasználó tulajdonában van Azonosító
  • -p
    A FILE létezik, és egy megnevezett cső
  • -r
    A FILE létezik, és az olvasási engedély megadva
  • -s
    FILE létezik, és mérete nagyobb, mint nulla
  • -S
    FILE létezik, és egy socket
  • -u
    FILE létezik, és annak set-user-ID bitje be van állítva
  • -w
    FILE létezik és írási engedély megadva
  • -x
    FILE létezik, és végrehajtási (vagy keresési) engedélyt kap

Következtetés

Leave a Reply

Vélemény, hozzászólás?

Az email címet nem tesszük közzé. A kötelező mezőket * karakterrel jelöltük