Come verificare se esiste un file in bash

Come verificare se esiste un file in bash

Esistono diversi modi per verificare la disponibilità di un file in Linux. Il comando "test" nello scripting bash è uno degli approcci chiave per controllare l'esistenza di un file.
Il focus di questa guida è discutere l'esistenza di un file nel sistema tramite script bash:

Come controllare l'esistenza del file utilizzando Bash Scripting:

1) inserendo il nome del file nel terminale:

In primo luogo, dobbiamo creare un file di script bash, utilizzare il comando di seguito:

$ touch Testfile.sh

Il nome del file che ho creato è "Testfile.sh ", il".L'estensione SH "indica il file di script shell:

Apri il "Testfile.sh "in qualsiasi editor di testo. Quindi scrivi lo script, salvalo premendo "Salva".

Un modo è trovare un file chiedendo un nome file dall'utente nel terminale.

Utilizzo "-F"Per controllare l'esistenza del file.

Scrivi lo script seguente:

#!/Bin/Bash
Echo "Inserisci il tuo nome file"
Leggi newfile1
if [-f "$ newfile1"]
Poi
Echo "File è trovato"
altro
Echo "File non è trovato"
fi

Torna al terminale ed esegui il file per stampare l'output:

./nome del file.sh

L'autorizzazione negato il messaggio verrebbe visualizzato nel terminale.

Renderlo eseguibile eseguendo il comando di seguito:

$ chmod +x testfile.sh

Immettere il nome del file e stamperà l'output:

2) inserendo il nome del file mentre scrivi lo script:
Un altro modo per trovare un file dando il nome del file mentre scrivi lo script. Abbiamo tre modi per verificare la disponibilità del file. Il primo sta usando il comando "Test", il secondo sta usando "if" con un'espressione tra parentesi quadrate e il terzo è anche con "if" ma parentesi a doppia quadrata come indicato di seguito:

  1. “Espressione di prova."
  2. "Se [espressione]"
  3. "Se [[espressione]]"

Capiamolo con esempi:

1) Test [espressione]
Copia lo script fornito e incollalo nell'editor, salvalo:

#!/Bin/Bash
FileName = File1
se test -f "$ nome file";
Poi
Echo "$ File ha trovato."
altro
Echo "$ File non è stato trovato"
fi

Produzione:

Poiché non esiste un tale file nella mia directory, pertanto il codice visualizza il messaggio "File non viene trovato".

2) se [espressione]

Copia il seguente script per controllare il file se esiste o no:

#!/Bin/Bash
FileName = myfile.TXT
if [-f "$ nome file"];
Poi
echo "$ filaname ha trovato."
altro
Echo "Il nome file non è stato trovato"
fi

Produzione:

3) se [[espressione]]

Copia lo script di seguito e incollalo sul terminale:

#!/Bin/Bash
FileName = TestFile
if [[-f "$ nome file"];
Poi
echo "$ filaname ha trovato."
altro
Echo "$ fileName non è stato trovato"
fi

Produzione:

Per controllare la directory:

3) inserendo il nome della directory mentre scrive uno script

Usa il "-D"Flag per controllare l'esistenza di una directory.

Nello script di seguito, "DIR11" è la variabile in cui si memorizza il file quello che stai trovando; In questo esempio, voglio controllare il nome della directory "testdir" o no.

#!/Bin/Bash
Dir11 = Testdir
if [-d "$ dir11"]
Poi
Echo "Directory ha trovato"
altro
Echo "La directory non è stata trovata"
fi

Produzione:

2) inserendo il nome del file nel terminale:
Quando si esegue il comando nel terminale per verificare se la directory esiste o meno, è necessario inserire il nome della directory che stai cercando:

#!/Bin/Bash
Echo "Digita il nome della directory."
Leggi Dir1
if [-d "dir1"]
Poi
Echo "La directory è stata trovata"
altro
Echo "La directory non ha trovato"
fi

Produzione:

Controllare il file senza utilizzare l'istruzione "if":

Il comando "test" può essere eseguito senza l'istruzione "if". Viene visualizzato l'output solo se il file esiste; Altrimenti, non ci sarebbe alcun output:

Scrivi Script:

  1. test -f myfile.txt && echo "File è stato trovato"
  2. [-f myfile.txt] && echo "$ file è stato trovato."
  3. [[-f myfile.txt]] && echo "$ file è stato trovato."

Produzione:

Controllare la directory senza utilizzare l'istruzione "if":

Utilizzare le dichiarazioni di seguito per verificare che esista o meno una directory:

  1. [[-D Testdir]] && echo "La directory esiste"
  2. 2) [-D testdir] && echo "La directory esiste"

Produzione:

Controllo di più file/directory:

1) Controllare più file con istruzioni "if":
Usa il flag "-a" per verificare l'esistenza di vari file invece di utilizzare le dichiarazioni nidificate "if/else":

#!/Bin/Bash
if [-f new_file.txt -a -f newfile.TXT ]; Poi
Echo "entrambi i file esistono."
fi

Un altro modo è:

#!/Bin/Bash
if [[-f new_file.txt && -f newfile.TXT ]]; Poi
Echo "entrambi i file esistono."
fi

Produzione:

2) Controllare più file senza utilizzare l'istruzione "if":
Utilizzare la seguente istruzione per controllare più file contemporaneamente 1Without utilizzando "if":

  1. [[-f new_file.txt && -f newfile.txt]] && echo "entrambi i file esci."
  2. [[-f new_file.txt && -f newfile.txt]] && echo "entrambi i file esci."

Produzione:

Conclusione:

Questo articolo ha mostrato come utilizzare Bash Scripting per controllare un file o una directory. Abbiamo usato diverse opzioni per verificare la disponibilità di un file. In primo luogo, utilizziamo il comando "test" con flag diversi. Quindi abbiamo imparato l'uso di "if", nidificato "if-else" e senza le dichiarazioni "if" per controllare il file o la directory. Abbiamo anche esaminato come controllare più file o directory.