GNU/Linux >> Linux Esercitazione >  >> Linux

Linux:come scoprire se ci sono file in una cartella ed uscire di conseguenza (in Ksh)?

Ho un KSH (non Bash ) script che voglio anticipare con un controllo del conteggio dei file. Se non ci sono file, voglio stampare "VUOTO", quindi esci. Altrimenti procedi.

Il problema è quando eseguo il conteggio dei file, ed è VUOTO, quindi si interrompe.

Codice:

###################################################
# Test to see if files exist in Drop Folder
###################################################
CONTENTS=$(ls ${gp_path}ALLSTUFF*.zip)
if [[ ${#CONTENTS[@]} -eq 0 ]]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

Se non è vuoto, funziona.

Se vuoto, ottengo l'errore seguente, quindi il sistema si interrompe. Vorrei che segnalasse VUOTO ed esce da 0:

Errore:

/nas/Opt/databox/folder/ALLSTUFF*.zip not found

Cosa sbaglio?

Tentativo n. 2

Ho provato anche questo, ma ho ottenuto lo stesso risultato:

if [ "$(ls ${gp_path}ALLSTUFF*.zip)" ]; then
    print 'NOT EMPTY'
else
    print 'EMPTY'
    exit 0
fi

Risposta accettata:

Puoi far scomparire il messaggio di errore con 2>/dev/null all'interno di ls .

Puoi quindi verificare se $CONTENTS è vuoto con -z

CONTENTS=$(ls -d -- "${gp_path}ALLSTUFF"*.zip 2>/dev/null)
if [ -z "$CONTENTS" ]; then
    print 'EMPTY'
    exit 0
else
    print 'NOT EMPTY'
fi

Linux
  1. Come scoprire le directory e i file principali (spazio su disco) in Linux

  2. Come trovare e ordinare i file in base alla data e all'ora di modifica in Linux

  3. Come trovare file con autorizzazioni SUID e SGID in Linux

  4. Come trovare file di grandi dimensioni Linux con i comandi find e du

  5. Come scoprire se ci sono file in una cartella ed uscire di conseguenza (in KSH)

Come trovare ed elencare in modo ricorsivo i file per data in Linux

Come trovare ed eliminare file duplicati in Linux

Trova ed elimina il file più vecchio se ci sono più di X file in una directory in Linux

Come trovare file duplicati in Linux e rimuoverli

Come comprimere file e cartelle in Linux [Suggerimento per principianti]

Come comprimere file e cartelle in Linux