Creative Saplings

Hogyan ellenőrizhető megfelelően, hogy létezik-e fájl a Bash vagy a Shell fájlban (példákkal)

február 13, 2021
No Comments

Tartalomjegyzék

Ebben az oktatóanyagban különféle attribútumokat fogok bemutatni, amelyeket a bash vagy a shell parancsfájlokban használhat a fájlok és könyvtárak ellenőrzésére. Használhatja a bash feltételes kifejezéseket a ] paranccsal, vagy a típussal ellenőrizheti, hogy létezik-e fájl.

Meg fogjuk tenni használja a bash if and else operátort az összes példához, ezért javasoljuk, hogy olvassa el: Bash if else használati útmutató az abszolút kezdők számára

1. Bash / Shell: Ellenőrizze, hogy létezik-e fájl és rendes fájl-e

Ez a szakasz példákat mutat be annak ellenőrzésére, hogy létezik-e szabályos fájl a bash-ban.

1.1: 1. módszer: egy- vagy kettős zárójelek használata

kettős zárójelek használata ]

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

Egyes zárójelek használata

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

1.2: 2. módszer: teszt parancs használata

test paranccsal ellenőrizhetjük a fájltípusokat és összehasonlíthatjuk őket. értékek.

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

1.3: 3. módszer: Egysoros

Ebben a példában itt egy vagy dupla zárójelet használhatunk. Azt javaslom, hogy mindig használjon dupla zárójelet, ha egy vonalhívó kódot ír be héjba, mivel ez minimalizálja a figyelmeztetések megjelenésének kockázatát a konzolon, amikor szófelosztás történik.

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

A && utáni utasítás végrehajtásra kerül, ha SIKER. Ha az első feltétel FALSE-t ad vissza, akkor a || nevű utasítás végrehajtásra kerül.

Hasonlóképpen használjon teszt parancsot annak ellenőrzésére, hogy létezik-e szabályos fájl a bash vagy a shell szkriptben egyetlen sorban .

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

2. Bash / Shell: Ellenőrizze, hogy létezik-e fájl (üres vagy nem üres)

A fájl létezésének ellenőrzése és ha üres vagy van valamilyen tartalma, akkor a “-s” attribútumot használjuk

2.1: 1. módszer: egy- vagy kettős zárójelek használata

Ellenőrizze, hogy létezik-e fájl, és üres-e vagy sem üres dupla zárójelek segítségével ]

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

Ellenőrizze, hogy van-e fájl létezik, és üres vagy nem üres dupla zárójelek használatával

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

2.2: 2. módszer: teszt parancs használata

A teszt parancs használatával egyesítjük az -s attribútumot annak ellenőrzéséhez, hogy a fájl létezik, üres vagy tartalmaz valamilyen tartalmat:

2.3: 3. módszer: Egysoros

Használhatunk dupla vagy egy zárójelet is egy ilyen vonalhajózáshoz, de mint korábban mondtam, dupla zárójelek használatát ajánlom.

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

A tesztparancshoz hasonlóan használhatjuk a && és a || operátor, hogy ellenőrizze a fájlt egysoros parancsban a shell szkriptünkben.

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

3. Bash / Shell: Ellenőrizze, hogy létezik-e könyvtár

Remélem tudod, hogy Linux alatt minden fájl. Tehát ily módon egy könyvtárat is fájlnak tekintenek. Használhatjuk az “-d” attribútumot annak ellenőrzésére, hogy létezik-e könyvtár a shell programozásban.

3.1: 1. módszer: dupla vagy egyes zárójelek használata

Az -d attribútumot egyetlen vagy kettős zárójelben ] használhatjuk az ellenőrzéshez ha létezik könyvtár.

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

Hasonlóképpen ebben a példában egyetlen zárójelet is használunk annak ellenőrzésére, hogy a könyvtár be van-e állítva a shell parancsfájlban.

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

3.2: 2. módszer: teszt parancs használata

Ebben a példában a teszt parancs segítségével ellenőrizzük, hogy van-e könyvtár, vagy sem, mielőtt végrehajtanánk bizonyos feladatokat.

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

3.3: 3. módszer: egysoros

Ebben a példában egy- és dupla zárójelet használunk egysoros formában az ellenőrzéshez a könyvtárhoz. Az && operátor utáni utasítás akkor kerül végrehajtásra, ha az első feltétel IGAZ, és ha HAMIS, akkor a || feltétel “utasítás végrehajtásra kerül .

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

Azt javasolnám, hogy a helyett a ] szót használja. egy ilyen vonalhordozó kód esetén a shell programozásban.

Hasonlóan a && és a || elemekhez, a teszt parancs segítségével ellenőrizhetjük ha létezik könyvtár

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

4. Bash / Shell: Ellenőrizze, hogy létezik-e könyvtár (üres vagy nem üres)

Nincsenek shell attribútumok mint ahogy ezt az oktatóanyag minden más példájában és forgatókönyvében használtam. De van néhány feltörésünk, amelyekkel ellenőrizhetjük, hogy a könyvtár üres-e vagy sem.

4.1: 1. módszer: Sorolja fel a könyvtár tartalmát és ellenőrizze

Ebben a példában felsoroljuk a könyvtár tartalmát, elnyomjuk a kimenetet, majd a kilépési kód ellenőrzése alapján ellenőrizzük, hogy a könyvtár üres-e vagy tartalmaz-e valamit tartalom

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

Ezt meg is fordíthatjuk a NOT (!) feltétel megadásával. Így néz ki:

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

A kimenet mindkét példa szkriptben megegyezik.

4.2: 2. módszer: Használat find parancs

Használhatjuk a find parancsot, majd elnyomhatjuk a kimenetet, hogy ellenőrizzük, van-e a célkönyvtárban tartalom vagy sem.

#!/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: 3. módszer: Sorolja fel a tartalmat

Ismét, ahogy mondtam, mivel nincs egyszerű módja annak ellenőrzésére, hogy egy könyvtár üres-e vagy nem használ-e valamilyen attribútumot, felsoroljuk a könyvtár tartalmát. Ha nem kap kimenetet, akkor a könyvtár üres, vagy nem üres. p> Hasonlóképpen még sok olyan attribútum van, amelyet shell parancsfájlokkal használhat a különböző fájltípusok ellenőrzésére, például szimbolikus hivatkozások, fájlengedélyek stb.

Attribútumok Mit csinál?
-a FILE Igaz, ha FILE létezik
-b FILE Igaz, ha FILE létezik, és blokk speciális fájl.
-c FILE Igaz, ha FILE létezik, és egy karakteres speciális fájl.
-d FILE Igaz, ha FILE létezik és könyvtár.
Igaz, ha létezik FILE
-f FILE Igaz, ha létezik FILE és rendes fájl
-g FILE Igaz, ha létezik FILE és a set-group-id bit beállítása
-h FILE Igaz, ha létezik FILE és szimbolikus link
-k FILE Igaz, ha létezik FILE és a “ragacsos” bitje be van állítva
-p FILE Igaz, ha FILE létezik és elnevezett cső (FIFO)
-r FILE Igaz, ha FILE létezik és olvasható
-s FILE Igaz, ha FILE létezik, és mérete nagyobb, mint nulla
-u FILE Igaz, ha létezik FILE, és annak set-user-id bitje be van állítva
-w FILE Igaz, ha FILE létezik és írható
-x FILE Igaz, ha FILE létezik és futtatható
-G FILE Igaz, ha FILE létezik, és a tényleges csoport-azonosító
-L FILE Igaz, ha létezik FILE és szimbolikus link
-N FILE Igaz, ha létezik FILE és az utolsó olvasása óta módosult
-o FILE Igaz, ha FILE létezik és a tényleges tulajdonosa felhasználói azonosító
-S FILE Igaz, ha létezik FILE és egy foglalat
Igaz, ha FILE1 és FILE2 ugyanarra az eszközre utal, és inode számok
FILE1 -nt FILE2 Igaz, ha FILE1 újabb (a módosítási dátum szerint), mint a FILE2, vagy ha létezik FILE1 és FILE2 nem
FILE1 -ot FILE2 Igaz, ha FILE1 régebbi mint FILE2, vagy ha létezik FILE2 és FILE1 nem

Következtetés

Articles
Previous Post

Hogyan mondhatjuk, hogy franciául üdvözöljük

Next Post

A távoli hozzáférés konfigurálása és csatlakozás egy távoli SQL Server példányhoz az ApexSQL eszközökkel

Vélemény, hozzászólás? Kilépés a válaszból

Legutóbbi bejegyzések

  • A világ legjobb fotóiskolái, 2020
  • A szuverén polgárok kormányellenes filozófiájukat viszik az utakra
  • Stukkó javítási költség útmutató
  • Muckrakers (Magyar)
  • Precíziós onkológia

Archívum

  • 2021 február
  • 2021 január
  • 2020 december
  • 2020 november
  • 2020 október
  • 2020 szeptember
  • 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.