GNU/Linux >> Tutoriels Linux >  >> Linux

Linux - Comment savoir s'il y a des fichiers dans un dossier et quitter en conséquence (en Ksh) ?

J'ai un KSH (pas Bash ) script que je veux préempter avec une vérification du nombre de fichiers. S'il n'y a pas de fichiers que je veux imprimer "VIDE", puis quittez. Sinon continuez.

Le problème est que lorsque j'effectue le comptage de fichiers et qu'il est VIDE, il se casse.

Code :

###################################################
# 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

S'il n'est pas vide, cela fonctionne.

S'il est vide, j'obtiens l'erreur ci-dessous, puis le système s'arrête. Je voudrais qu'il se contente de signaler EMPTY et de sortir 0 :

Erreur :

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

Qu'est-ce que je fais de mal ?

Tentative #2

J'ai aussi essayé ceci, mais j'ai obtenu le même résultat :

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

Réponse acceptée :

Vous pouvez faire disparaître le message d'erreur avec 2>/dev/null à l'intérieur du ls .

Vous pouvez ensuite vérifier si $CONTENTS est vide avec -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. Comment trouver les meilleurs répertoires et fichiers (espace disque) sous Linux

  2. Comment rechercher et trier des fichiers en fonction de la date et de l'heure de modification sous Linux

  3. Comment trouver des fichiers avec des autorisations SUID et SGID sous Linux

  4. Comment trouver des fichiers volumineux Linux avec les commandes find et du

  5. Comment rechercher et supprimer des répertoires et des fichiers vides sous Linux

Comment rechercher et répertorier récursivement les fichiers par date sous Linux

Comment rechercher et supprimer des fichiers en double sous Linux

Rechercher et supprimer le fichier le plus ancien s'il y a plus de X fichiers dans un répertoire sous Linux

Comment trouver des fichiers en double sous Linux et les supprimer

Comment compresser des fichiers et des dossiers sous Linux [Astuce pour débutant]

Comment compresser des fichiers et des dossiers sous Linux