Hogyan ellenőrizhető, hogy létezik-e fájl vagy könyvtár a Bash-ban

A Shell-szkriptek írásakor sokszor olyan helyzetbe kerülhet, hogy valamilyen műveletet kell végrehajtania annak alapján, hogy létezik-e fájl vagy sem. .

A Bash fájlban a teszt paranccsal ellenőrizheti, hogy létezik-e fájl, és meghatározza a fájl típusát.

A teszt parancs a következő szintaxis formák egyikét öleli fel:

Ha azt akarja, hogy a szkript hordozható legyen, akkor inkább a régi tesztet használja: ; then echo "$FILE exists."fi

Ha egy másik műveletet szeretne végrehajtani annak alapján, hogy a fájl létezik-e vagy sem használja az if / then konstrukciót:

Mindig használjon dupla idézőjeleket, hogy elkerülje a fájlokkal kapcsolatos problémákat szóközt tartalmaz a nevükben.

A teszt parancsot az if utasítás nélkül is használhatja. A && operátor utáni parancs csak akkor hajtódik végre, ha a tesztparancs kilépési állapota igaz,

Ha szeretné futtasson egy parancssort, miután a && operátor egyszerűen göndör zárójelbe zárja a parancsokat ; vagy &&:

Szemben a && -vel, a Az || operátor csak akkor kerül végrehajtásra, ha a tesztparancs kilépési állapota false.

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

A -d operátorok lehetővé teszik annak tesztelését, hogy egy fájl könyvtár vagy sem.

Például annak ellenőrzésére, hogy létezik-e a /etc/docker könyvtár:

Használhatja a dupla zárójeleket is ; then echo "$FILE does not exist."fi

A fentiekkel megegyező:

Ellenőrizze, hogy létezik-e több fájl #

A bonyolult beágyazott if / else konstrukciók használata helyett a -a (vagy && ; then echo "Both files exist."fi

Ekvivalens változatok az IF utasítás használata nélkül:

fájlteszt operátorok #

A tesztparancs a következő FÁJL operátorokat tartalmazza, amelyek lehetővé teszik bizonyos típusú fájlok tesztelését:

  • -b FILE – Igaz, ha a FILE létezik és egy speciális blokkfájl.
  • -c FILE – Igaz ha a FÁJL létezik és egy speciális karakterfájl.
  • -d FILE – Igaz, ha a FÁJL létezik és könyvtár.
  • -e FILE – Igaz, ha a FÁJL létezik és fájl, függetlenül a típustól (csomópont, könyvtár, socket stb.).
  • -f FILE – Igaz, ha a FÁJL létezik és rendes fájl (nem könyvtár vagy eszköz).
  • -G FILE – Igaz, ha a FÁJL létezik, és ugyanaz a csoportja van, mint a parancsot futtató felhasználónak.
  • -h FILE – Igaz, ha a FÁJL létezik és szimbolikus link.
  • -g FILE – Igaz, ha a FÁJL létezik, és set-group-id (sgid) zászló van beállítva.
  • -k FILE – Igaz, ha a FÁJL létezik és ragacsos bitjelző van beállítva.
  • -L – Igaz, ha a FÁJL létezik és szimbolikus link.
  • -O FILE – Igaz, ha a FÁJL létezik, és a parancsot futtató felhasználóé.
  • -p FILE – Igaz, ha a FÁJL létezik és cső.
  • -r FILE – Igaz, ha a FÁJL létezik és olvasható.
  • -S FILE – Igaz, ha a FÁJL létezik és foglalat.
  • -s FILE – Igaz, ha a FÁJL létezik és nem nulla méretű.
  • -u FILE – Igaz, ha a FÁJL létezik, és a set-user-id (suid) jelző be van állítva.
  • -w FILE – Igaz, ha a FÁJL létezik és írható.
  • -x FILE – Igaz, ha a FÁJL létezik és exe vágható.

Következtetés #

Ebben az útmutatóban bemutattuk, hogyan lehet ellenőrizni, hogy létezik-e fájl vagy könyvtár a Bash-ban.

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