Test sur fichiers

Rédigé par Paulo Aucun commentaire
Classé dans : Bash Mots clés : bash

Rappel sur les différents test possible sur les fichiers (source wikipédia):
   -b Fichier -- Fichier existe et est un fichier spécial en mode bloc.
   -c Fichier -- Fichier existe et est un fichier spécial en mode caractère.
   -d Fichier -- Fichier existe et est un répertoire.
   -e Fichier -- Fichier existe.
   -f Fichier -- Fichier existe et est de type ordinaire.
   -g Fichier -- Fichier existe et le bit Set Group ID est actif.
   -h Fichier -- Fichier existe et est un lien symbolique.
   -k Fichier -- Fichier existe et le sticky bit est actif.
   -L Fichier -- Fichier existe et est un lien symbolique (même chose que -h).
   -p Fichier -- Fichier existe et est un tube nommé (named pipe, FIFO).
   -r Fichier -- Fichier existe et est accessible en lecture.
   -S Fichier -- Fichier existe et est un fichier spécial socket.
   -s Fichier -- Fichier existe et a une taille non nulle.
   -t Descripteur -- Le descripteur de fichier est ouvert et associé à un terminal.
   -u Fichier -- Fichier existe et le bit Set User ID est actif.
   -w Fichier -- Fichier existe et est spécifié comme étant accessible en écriture.
          Toutefois, le fichier ne sera pas accessible en écriture sur un système de fichier en
          lecture seule, même si le test indique vrai (true).
   -x Fichier -- Fichier existe et est spécifié comme étant exécutable.
          Si le fichier spécifié est un répertoire, une valeur de retour vrai (true) signifie
          que le processus courant a la permission de parcourir ce répertoire.
 

if [ -s /tmp/fichier.test ]; then
   echo 'Fichier existe et non vide'    
else
   if [ -f /tmp/fichier.test ]; then 
      echo 'Fichier vide'
   else
      echo 'Fichier inexistant'
   fi
fi

 

Comparaison au niveau des fichiers :
Fichier1 -nt Fichier2 -- Fichier1 est plus récent que Fichier2.
Fichier1 -ot Fichier2 -- Fichier1 est plus ancien que Fichier2.
Fichier1 -ef Fichier2 -- Fichier1 et Fichier2 pointent vers le même fichier (lien)


Test presence et contenu d'un fichier :
 


if (test -f /etc/master.security ) && ( grep -q  ${sp} /etc/master.security ); then
   echo "Le ${sp} a déja été installé sur ce serveur !"
   exit 0
fi




 

Les commentaires sont fermés.