Shell Scripting Tutorial | Shell Scripting Crash Course | Linux Certification Training | Edureka
Innholdsfortegnelse:
- Sjekk om fil eksisterer
- Sjekk om katalogen eksisterer
- Sjekk om fil ikke eksisterer
- Sjekk om flere filer eksisterer
- Operatører av filtest
- Konklusjon
Mange ganger når du skriver Shell-manus, kan du komme deg i en situasjon der du trenger å utføre en handling basert på om en fil eksisterer eller ikke.
I Bash kan du bruke testkommandoen til å sjekke om det finnes en fil og bestemme filtypen.
Testkommandoen har et av følgende syntaksformer:
Sjekk om fil eksisterer
Når du sjekker om det finnes en fil, er de mest brukte FILE-operatørene
-e
og
-f
. Den første vil sjekke om det finnes en fil uavhengig av type, mens den andre vil returnere true bare hvis FILEN er en vanlig fil (ikke en katalog eller en enhet).
Det mest lesbare alternativet når du sjekker om en fil eksisterer eller ikke, er å bruke testkommandoen i kombinasjon med if-setningen. Noen av kodebitene nedenfor vil sjekke om filen
/etc/resolv.conf
eksisterer:
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
Hvis du vil utføre en annen handling basert på om filen eksisterer eller ikke bare bruker if / then-konstruksjonen:
FILE=/etc/resolv.conf if; then echo "$FILE exist" else echo "$FILE does not exist" fi
Bruk alltid doble anførselstegn for å unngå problemer når du arbeider med filer som inneholder et mellomrom i deres navn.
Du kan også bruke testkommandoen uten if-setningen. Kommandoen etter
&&
operatøren vil bare bli utført hvis utgangsstatusen til testkommandoen er sann,
test -f /etc/resolv.conf && echo "$FILE exist"
&& echo "$FILE exist"
] && echo "$FILE exist"
&& { echo "$FILE exist"; cp "$FILE" /tmp/; }
I motsetning til
&&
, uttalelsen etter
||
operatøren vil bare bli utført hvis utgangsstatusen til testkommandoen er
false
.
&& echo "$FILE exist" || echo "$FILE does not exist"
Sjekk om katalogen eksisterer
Operatørene
-d
lar deg teste om en fil er en katalog eller ikke.
For eksempel for å sjekke om
/etc/docker
katalogen eksisterer du vil bruke:
FILE=/etc/docker if; then echo "$FILE is a directory" fi
&& echo "$FILE is a directory"
Du kan også bruke doble parenteser
, 'linuxize_com-medrectangle-4', 'ezslot_7', 160, '0', '0']));
Sjekk om fil ikke eksisterer
I likhet med mange andre språk, kan testuttrykket negeres med
!
(utropstegn) logisk ikke operatør:
FILE=/etc/docker if; then echo "$FILE does not exist" fi
Samme som ovenfor:
&& echo "$FILE does not exist"
Sjekk om flere filer eksisterer
I stedet for å bruke kompliserte nestede hvis / else-konstruksjoner kan du bruke
-a
(eller
&&
med
; then echo "$FILE is a directory" fi
FILE=/etc/docker if; then echo "$FILE is a directory" fi
Tilsvarende varianter uten å bruke IF-setningen:
&& echo "both files exist"
Operatører av filtest
Testkommandoen inkluderer følgende FIL-operatører som lar deg teste for bestemte filtyper:
-
-b
FILE
- Sann hvis FILEN eksisterer og er en spesiell blokkeringsfil.-c
FILE
- Sannt hvis FILEN eksisterer og er en spesiell tegnfil.-d
FILE
- Sann hvis FILEN eksisterer og er en katalog.-e
FILE
- Sant om FILEN eksisterer og er en fil, uavhengig av type (node, katalog, socket, etc.).-f
FILE
- Sant om FILEN eksisterer og er en vanlig fil (ikke en katalog eller enhet).-G
FILE
- Sann hvis FILEN eksisterer og har samme gruppe som brukeren som kjører kommandoen.-h
FILE
- Sant om FILEN eksisterer og er en symbolsk kobling.-g
FILE
- Sann hvis FILEN eksisterer og har set-group-id (sgid) flaggsett.-k
FILE
- Sann hvis FILEN eksisterer og har et klebrig bitflaggssett.-L
FILE
- Sann hvis FILEN eksisterer og er en symbolsk kobling.-O
FILE
- Sann hvis FILEN eksisterer og eies av brukeren som kjører kommandoen.-p
FILE
- Sann hvis FILEN eksisterer og er et rør.-r
FILE
- Riktig hvis FILEN eksisterer og er lesbar.-S
FILE
- Sann hvis FILEN eksisterer og er stikkontakt.-s
FILE
- Sannt hvis FILEN eksisterer og har ikke-størrelse størrelse.-u
FILE
- Sann hvis det eksisterende flagget som er angitt og sett-bruker-id (suid) er satt.-w
FILE
- Sann hvis FILEN eksisterer og kan skrives.-x
FILE
- Sann hvis FILEN eksisterer og er kjørbar.
Konklusjon
I denne guiden har vi vist deg hvordan du kan sjekke om det finnes en fil eller katalog ved hjelp av Bash.
bash terminalDet finnes et mangfoldig utvalg av tablettalternativer for å dumme og forbløffe shoppere denne ferien. Microsoft har en solid konkurrent med sin nåværende Surface-tablett, men den driver det mer begrensede Windows RT-operativsystemet som ble utviklet for bruk med ARM-baserte prosessorer. Jeg har allerede undersøkt hvordan overflaten RT slår iPad, og hvordan iPad slår Surface RT, men hvordan med tabletter som driver den kraftigere Windows 8 Pro OS?

Samsung Series 7 Slate har en Intel Core i5 prosessor.
Systemfilkontrollen er et veldig nyttig verktøy i Windows som lar deg sjekke og erstatte ødelagte systemfiler. Men det lister ikke alle de beskyttede systemfilene, eller lar deg sjekke en bestemt fil individuelt, hvis behovet oppstår.

Systemfiler Lister
Hvordan sjekke om det finnes en fil eller katalog i python

Når du skriver Python-skript, kan det være lurt å utføre en viss handling bare hvis en fil eller katalog eksisterer eller ikke. Det kan for eksempel være lurt å lese eller skrive data til en konfigurasjonsfil eller opprette filen bare hvis den ikke allerede eksisterer.