Come verificare se un file esiste in bash

How Check If File Exists Bash

Esistono diversi modi per verificare la disponibilità di un file in Linux. Il comando test negli script bash è uno degli approcci chiave per verificare l'esistenza di un file.
L'obiettivo di questa guida è discutere l'esistenza di un file nel tuo sistema attraverso lo scripting bash:

Come verificare l'esistenza del file utilizzando lo script bash:

1) Inserendo il nome del file nel terminale:



Innanzitutto, dobbiamo creare un file di script bash, utilizzare il comando indicato di seguito:



$toccofileprova.sh

Il nome del file che ho creato è testfile.sh, l'estensione .sh indica il file script della shell:



Apri testfile.sh in qualsiasi editor di testo. Quindi scrivi lo script, salvalo premendo salva.

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



Utilizzo -F per verificare l'esistenza del file.

Scrivi lo script qui sotto:

#!/bin/bash
buttato fuori 'Inserisci il nome del tuo file'
leggerenuovofile1
Se [ -F '$nuovofile1' ]
poi
buttato fuori 'File trovato'
altro
buttato fuori 'File non trovato'
essere

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

./nomefile.sh

Il messaggio di autorizzazione negata verrebbe visualizzato nel terminale.

Rendilo eseguibile eseguendo il comando indicato di seguito:

$chmod+ x fileprova.sh

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

2) Inserendo il nome del file durante la scrittura dello script:
Un altro modo per trovare un file fornendo il nome del file durante la scrittura dello script. Abbiamo tre modi per verificare la disponibilità del file. Il primo utilizza il comando test, il secondo utilizza if con un'espressione tra parentesi quadre e il terzo utilizza anche if ma doppie parentesi quadre come indicato di seguito:

  1. prova ESPRESSIONE.
  2. se [ESPRESSIONE]
  3. se [[ ESPRESSIONE ]]

Capiamolo con degli esempi:

1) prova [ Espressione ]
Copia lo script dato e incollalo nell'editor, salvalo:

#!/bin/bash
nome del file=file1
Se test -F '$nomefile';
poi
buttato fuori '$fileha trovato.'
altro
buttato fuori '$filenon è stato trovato'
essere

Produzione:

Poiché non esiste un file di questo tipo nella mia directory, il codice visualizza il messaggio File non trovato.

2) se [ Espressione ]

Copia il seguente script per verificare se il file esiste o meno:

#!/bin/bash
nome del file=miofile.txt
Se [ -F '$nomefile' ];
poi
buttato fuori '$nomefileha trovato.'
altro
buttato fuori 'il nome del file non è stato trovato'
essere

Produzione:

3) se [[ Espressione ]]

Copia lo script scritto di seguito e incollalo sul terminale:

#!/bin/bash
nome del file=file di prova
Se [[ -F '$nomefile' ]];
poi
buttato fuori '$nomefileha trovato.'
altro
buttato fuori '$nomefilenon è stato trovato'
essere

Produzione:

Per controllare la directory:

3) Inserendo il nome della directory durante la scrittura di uno script

Utilizzare il -D flag per verificare l'esistenza di una directory.

Nello script sottostante, dir11 è la variabile in cui memorizzi il file che stai trovando; in questo esempio, voglio controllare che il nome della directory testDir esista o meno.

#!/bin/bash
dir11=testDir
Se [ -D '$dir11' ]
poi
buttato fuori 'La directory ha trovato'
altro
buttato fuori 'La directory non è stata trovata'
essere

Produzione:

2) Inserendo il nome del file nel terminale:
Quando esegui il comando nel terminale per verificare se la directory esiste o meno, ti viene richiesto di inserire il nome della directory che stai cercando:

#!/bin/bash
buttato fuori 'digita il nome della directory.'
leggereDir1
Se [ -D 'Dir1' ]
poi
buttato fuori 'la directory è stata trovata'
altro
buttato fuori 'directory non trovata'
essere

Produzione:

Controllo del file senza utilizzare l'istruzione if:

Il comando test può essere eseguito senza l'istruzione if. Visualizzerà l'output solo se il file esiste; altrimenti, non ci sarebbe alcun output:

Scrivi la sceneggiatura:

  1. test -Fmiofile.txt&& buttato fuori 'il file è stato trovato'

  2. [ -Fmiofile.txt] && buttato fuori '$fileè stato trovato.'

  3. [[ -Fmiofile.txt]] && buttato fuori '$fileè stato trovato.'

Produzione:

Controllo della directory senza utilizzare l'istruzione if:

Utilizzare le istruzioni sotto menzionate per verificare che una directory esista o meno:

  1. [[ -DtestDir]] && buttato fuori 'la directory esiste'

  2. 2) [ -DtestDir] && buttato fuori 'la directory esiste'

Produzione:

Controllo di più file/directory:

1) Controllo di più file con istruzioni if:
Utilizzare il flag -a per verificare l'esistenza di vari file invece di utilizzare istruzioni if/else nidificate:

#!/bin/bash
Se [ -Fnuovo_file.txt-a -Fnuovofile.txt];poi
buttato fuori 'Esistono entrambi i file.'
essere

Un altro modo è:

#!/bin/bash
Se [[ -Fnuovo_file.txt&& -Fnuovofile.txt]];poi
buttato fuori 'Esistono entrambi i file.'
essere

Produzione:

2) Controllo di più file senza utilizzare l'istruzione if:
Utilizzare la seguente istruzione per controllare più file contemporaneamente 1senza utilizzare if:

  1. [[ -Fnuovo_file.txt&& -Fnuovofile.txt]] && buttato fuoriEntrambi i file escono.

  2. [[ -Fnuovo_file.txt&& -Fnuovofile.txt]] && buttato fuoriEntrambi i file escono.

Produzione:

Conclusione:

Questo articolo ha mostrato come utilizzare gli script bash per controllare un file o una directory. Abbiamo utilizzato diverse opzioni per verificare la disponibilità di un file. In primo luogo, usiamo il comando test con diversi flag. Quindi abbiamo imparato l'uso di if, if-else nidificato e senza le istruzioni if ​​per controllare il file o la directory. Abbiamo anche esaminato come controllare più file o directory.