Come verificare se un file o una directory esiste in uno script di shell Bash

Come verificare se un file o una directory esiste in uno script di shell Bash

Verificare se esiste un file o una directory da uno script Bash

Bash viene utilizzato per automatizzare i comandi eseguiti regolarmente in Linux. I comandi che sono destinati alle operazioni su file/directory sono usati abbastanza frequentemente e di solito, prima di eseguire un tale comando, dobbiamo verificare se il particolare file o directory esiste. Vediamo come eseguire questo controllo.

Sintassi e utilizzo

File

Per verificare se esiste un file , utilizzare la seguente sintassi:

[ -f  ]

L'espressione [ -f ]restituisce 0, cioè successo se esiste, e se non esiste restituisce uno stato diverso da zero. In genere, questo viene utilizzato come condizione ifnell'istruzione.

if [ -f  ]
then
  
fi

Per negare il valore restituito , è sufficiente anteporre -fa un operatore di negazione ( !).

if [ ! -f  ]
then
  
fi

In questo caso, la condizione sarà soddisfatta se il file non esiste , in quanto lo stato restituito diverso da zero (false) sarà negato e considerato come 0 (vero).

Come verificare se un file o una directory esiste in uno script di shell Bash

Come verificare se un file o una directory esiste in uno script di shell Bash

Nota che se il file da controllare non esiste nella directory corrente ed esiste in qualche altra directory, il percorso completo del file dovrebbe essere menzionato invece del solo nome del file.

Directory

Una sintassi simile a quella utilizzata per il controllo dei file viene utilizzata per il controllo delle directory.

[ -d  ]

Simile all'istruzione per i file, questa istruzione restituisce 0, ovvero successo, se la directory esiste, e uno stato diverso da zero, ovvero viene restituito lo stato di errore se non esiste. Questo è anche comunemente usato in una ifcondizione di istruzione.

if [ -d  ]
then
  
fi

Per negare lo stato restituito, precedere il -dcon un operatore di negazione ( !).

if [ ! -d  ]
then
  
fi

La condizione soddisferà (stato 0) in questo caso se la directory non esiste e fallirà (stato diverso da zero) se la directory esiste.

Come verificare se un file o una directory esiste in uno script di shell Bash

Come accennato in precedenza per i file, se la directory da controllare esiste in un'altra posizione e non nella directory corrente, è necessario immettere l'intero percorso della directory anziché solo il nome della directory.

💡 La sintassi della parentesi ( [...]) usata qui è in realtà un comando Linux chiamato test. Le opzioni -fe -dsono le caratteristiche di questo comando. Per ulteriori informazioni, vedere la pagina di manuale di test ( man test).

Verifica da uno script Bash

Negli esempi precedenti, abbiamo utilizzato le sintassi direttamente sul terminale. La shell ogni volta che incontra un ciclo, o un'istruzione condizionale ( ifnel nostro caso), continua il prompt e consente all'utente di inserire la continuazione del blocco.

Le stesse sintassi possono essere utilizzate dall'interno di uno script Bash.

Come verificare se un file o una directory esiste in uno script di shell Bash

L'  #!/bin/bash all'inizio specifica l'interprete da utilizzare quando viene eseguito il file. Sebbene Bash sia la shell più comunemente usata al giorno d'oggi, alcuni utenti preferiscono shell come  zsh, che dovrebbero essere specificate al posto di bash all'inizio di questo file.

Per dare i permessi di esecuzione  per questo file, esegui:

chmod +x test.sh

Infine,  per eseguire il file , esegui:

./test.sh
Tags: #bash

Come copiare e incollare su Chromebook

Come copiare e incollare su Chromebook

La prima cosa che potresti chiederti mentre passi a un Chromebook è come fare le cose di base, il tipo di cose che avevi sul palmo della tua mano nel tuo sistema operativo precedente. Copiare e incollare è una di queste funzioni fondamentali che devi usare prima o poi.

Come fare un test di digitazione su Linux con tt

Come fare un test di digitazione su Linux con tt

Nell'era moderna della tecnologia, la dattilografia è diventata una delle attività più comuni per molte professioni. Imparare a digitare più velocemente con precisione può aiutarti a fare più cose nello stesso lasso di tempo.

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Il Wi-Fi non funziona su Ubuntu? Ecco come risolverlo

Ubuntu è famoso per la sua robustezza e relativamente meno errori. Ma non è senza problemi, di sicuro. Uno di questi problemi è con il suo driver Wi-Fi. Potresti accendere il tuo sistema solo per scoprire che il tuo Wi-Fi non funziona.

Come creare e scansionare codici QR su Chromebook

Come creare e scansionare codici QR su Chromebook

I codici di risposta rapida, o codici QR in breve, sono codici a barre avanzati che contengono più informazioni rispetto a un codice a barre tradizionale. Questi codici sono bidimensionali, consentendoti di scansionarli verticalmente o orizzontalmente.

Come installare e rimuovere i pacchetti in Arch Linux

Come installare e rimuovere i pacchetti in Arch Linux

Vuoi installare pacchetti su Arch Linux ma non sai come fare? Molte persone affrontano questo problema quando migrano per la prima volta dalle distribuzioni basate su Debian ad Arch. Tuttavia, puoi facilmente gestire i pacchetti sul tuo sistema basato su Arch utilizzando i gestori di pacchetti.

10+ migliori estensioni GNOME per Ubuntu 20.04

10+ migliori estensioni GNOME per Ubuntu 20.04

Molte delle estensioni popolari come Gno-Menu, Extended Gestures non funzionano con Ubuntu 20.04. Quindi, ecco un elenco delle migliori estensioni GNOME funzionanti

Come installare Spotify su Linux

Come installare Spotify su Linux

Spotify è uno dei più grandi servizi di streaming musicale in circolazione. Ha client nativi sia per dispositivi mobili (Android e iOS) che desktop (Mac e Windows).

9 comandi di base per iniziare con Linux

9 comandi di base per iniziare con Linux

Le guide pratiche di Linux spesso si aspettano che tu esegua determinate operazioni nel terminale, il che all'inizio può sembrare intimidatorio. Ma non preoccuparti; questo cheat sheet del comando Linux coprirà il processo di apertura di un terminale e l'emissione di alcuni comandi utili.

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

5 migliori app di trasferimento file Wi-Fi da Ubuntu ad Android

Un meccanismo come FTP, trasferimento file peer-to-peer, trasferimento Wi-Fi ti farà risparmiare tempo se condividi spesso file tra il tuo Android e Ubuntu.

Come spostare file Linux con il comando Mv

Come spostare file Linux con il comando Mv

Anche se probabilmente sai già come spostare un file in Linux utilizzando il browser di file della GUI, potresti chiederti se c'è un comando di spostamento nel terminale che ti consente di spostare rapidamente i file in directory diverse. Il comando mv è quello che desideri ed è facile da usare con la sua sintassi semplice e alcuni flag di sicurezza opzionali.