Android

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

PHP Syntax

PHP Syntax

Tartalomjegyzék:

Anonim

A Shell szkriptek írásakor sokszor előfordulhat, hogy olyan helyzetbe kerül, ahol végre kell hajtania egy műveletet annak alapján, hogy létezik-e fájl vagy sem.

A Bash alkalmazásban a tesztparancs segítségével ellenőrizheti a fájl létezését, és meghatározhatja a fájl típusát.

A tesztparancs a következő szintaxisformák egyikét veszi igénybe:

test EXPRESSION]

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

Annak ellenőrzésekor, hogy létezik-e fájl, a leggyakrabban használt FILE operátorok az -e és -f . Az első ellenőrzi, hogy létezik-e egy fájl a típustól függetlenül, míg a második csak akkor igaz, ha a FÁJL egy szokásos fájl (nem könyvtár vagy eszköz).

A fájlok létezésének ellenőrzéséhez a legolvashatóbb módszer a tesztparancs használata az if utasításlal kombinálva. Az alábbi kivonatok bármelyike ​​ellenőrzi, hogy létezik-e az /etc/resolv.conf fájl:

FILE=/etc/resolv.conf if test -f "$FILE"; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if; then echo "$FILE exist" fi

FILE=/etc/resolv.conf if]; then echo "$FILE exist" fi

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

FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi Mindig dupla idézőjeleket használjon, hogy elkerülje a problémákat, amikor a nevükben szóközt tartalmazó fájlokkal foglalkoznak.

A tesztparancsot az if utasítás nélkül is használhatja. A && operátor utáni parancs csak akkor kerül végrehajtásra, ha a tesztparancs kilépési állapota igaz, test -f /etc/resolv.conf && echo "$FILE exist"

&& echo "$FILE exist"

] && echo "$FILE exist"

&& { echo "$FILE exist"; cp "$FILE" /tmp/; }

A && -vel ellentétben a || Az operátort csak akkor hajtják végre, ha a tesztparancs kilépési állapota false .

&& echo "$FILE exist" || echo "$FILE does not exist"

Ellenőrizze, hogy létezik-e a Directory

A -d operátorok lehetővé teszik, hogy tesztelje, hogy a fájl könyvtár-e vagy sem.

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

FILE=/etc/docker if; then echo "$FILE is a directory" fi

&& echo "$FILE is a directory"

Használhat kettős zárójelet is , 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));

Ellenőrizze, hogy nem létezik-e fájl

Sok más nyelvhez hasonlóan a teszt kifejezést semlegesítheti a ! (felkiáltójel) logikai nem operátor:

FILE=/etc/docker if; then echo "$FILE does not exist" fi

Ugyanaz, mint fent:

&& echo "$FILE does not exist"

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

A bonyolult beágyazott / / else konstrukciók használata helyett használhatja az -a (vagy a && with ; then echo "$FILE is a directory" fi

FILE=/etc/docker if; then echo "$FILE is a directory" fi

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

&& echo "both files exist"

] && echo "both files exist"

Fájlteszt operátorok

A tesztparancs a következő FILE operátorokat tartalmazza, amelyek lehetővé teszik bizonyos fájltípusok tesztelését:

  • -b FILE - igaz, ha a FÁJL 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 egy könyvtár. -e FILE - igaz, ha a FÁJL létezik és egy fájl, típusától (csomópont, könyvtár, aljzat stb.) függetlenül. -f FILE - igaz, ha a FÁJL létezik és egy normál fájl (nem könyvtár vagy eszköz). -G FILE - Igaz, ha a FÁJL létezik, és azonos csoporttal rendelkezik, mint a parancsot futtató felhasználó. -h FILE - igaz, ha a FÁJL létezik és szimbolikus link. -g FILE - Igaz, ha a FÁJL létezik, és beállítva a csoport-azonosító (sgid) jelző. -k FILE - igaz, ha a FÁJL létezik, és ragacsos bitjelzővel rendelkezik. -L FILE - igaz, ha a FÁJL létezik és egy szimbolikus link. -O FILE - igaz, ha a FÁJL létezik, és a parancsot futtató felhasználó tulajdonában van. -p FILE - igaz, ha a FÁJL létezik és egy cső. -r FILE - Igaz, ha a FÁJL létezik és olvasható. -S FILE - Igaz, ha a FÁJL létezik és foglalatban van. -s FILE - Igaz, ha a FÁJL létezik, és nem nulla méretű. -u FILE - Igaz, ha 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 futtatható.

Következtetés

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

bash terminál