Comment vérifier si un fichier existe à l'aide de Bash Shell

高洛峰
Libérer: 2017-01-09 13:48:21
original
1329 Les gens l'ont consulté

Avant-propos

Vous pouvez souvent rencontrer un tel besoin lorsque vous travaillez Dans l'environnement Bash d'un système de type Unix, comment vérifier si un fichier existe ? Puisqu'il y a un besoin, il existe bien sûr une solution. La commande test dans le Shell peut être utilisée pour détecter le type du fichier ou comparer si les valeurs sont égales. Cette commande peut également être utilisée pour vérifier si le fichier. existe.

Vous pouvez utiliser la commande suivante pour vérifier :

test -e filename
[ -e filename ]
  
test -f filename
[ -f filename ]
Copier après la connexion

La commande suivante utilise l'expression conditionnelle de Shell pour juger/Si le etc/ Le fichier hosts existe :

[ -f /etc/hosts ] && echo "Found" || echo "Not found"
Copier après la connexion

Cette commande combinée affichera ce qui suit :

Found
Copier après la connexion

Une utilisation plus courante consiste à placer la commande test dans l'expression conditionnelle du jugement conditionnel if..else..fi, puis à y écrire une logique de branche différente

#!/bin/bash
file="/etc/hosts"
if [ -f "$file" ]
then
 echo "$file found."
else
 echo "$file not found."
fi
Copier après la connexion

Opérateurs associés pour détecter les attributs du fichier

Si le fichier existe et possède les attributs correspondants, les opérateurs suivants retourneront vrai :

-b FILE
  FILE exists and is block special
-c FILE
  FILE exists and is character special
-d FILE
  FILE exists and is a directory
-e FILE
  FILE exists
-f FILE
  FILE exists and is a regular file
-g FILE
  FILE exists and is set-group-ID
-G FILE
  FILE exists and is owned by the effective group ID
-h FILE
  FILE exists and is a symbolic link (same as -L)
-k FILE
  FILE exists and has its sticky bit set
-L FILE
  FILE exists and is a symbolic link (same as -h)
-O FILE
  FILE exists and is owned by the effective user ID
-p FILE
  FILE exists and is a named pipe
-r FILE
  FILE exists and read permission is granted
-s FILE
  FILE exists and has a size greater than zero
-S FILE
  FILE exists and is a socket
-t FD file descriptor FD is opened on a terminal
-u FILE
  FILE exists and its set-user-ID bit is set
-w FILE
  FILE exists and write permission is granted
-x FILE
  FILE exists and execute (or search) permission is granted
Copier après la connexion

La commande ci-dessus est copiée de man test.

La méthode d'utilisation des symboles ci-dessus est exactement la même :

if [ operator FileName ]
then
  echo "FileName - Found, take some action here"
else
 echo "FileName - Not found, take some action here"
fi
Copier après la connexion

Résumé

Ce qui précède est le contenu complet de cet article, j'espère que le contenu de cet article pourra être utile aux études ou au travail de chacun. Si vous avez des questions, vous pouvez laisser un message pour communiquer.

Pour plus d'articles sur la façon d'utiliser Bash Shell pour vérifier si un fichier existe, veuillez faire attention au site Web PHP chinois !


Étiquettes associées:
source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal