| Expression | Code de retour |
|---|---|
| -b FILE | Vrai si le fichier existe et est du type spécial bloc |
| -c FILE | Vrai si le fichier existe et est du type spécial caractère |
| -d FILE | Vrai si le fichier existe et est du type répertoire |
| -e FILE | Vrai si le fichier existe |
| -f FILE | Vrai si le fichier existe et est du type ordinaire |
| -G FILE | Vrai si le fichier existe et si l'utilisateur appartient au groupe propriétaire du fichier |
| -h FILE | Vrai si le fichier existe et est du type lien symbolique |
| -L FILE | Vrai si le fichier existe et est du type lien symbolique (idem -h) |
| -O FILE | Vrai si le fichier existe et si l'utilisateur est le propriétaire du fichier |
| -r FILE | Vrai si le fichier existe et est accessible en lecture |
| -s FILE | Vrai si le fichier existe et n'est pas vide |
| -S FILE | Vrai si le fichier existe et est du type socket |
| -w FILE | Vrai si le fichier existe et est accessible en écriture |
| -x FILE | Vrai si le fichier existe et est exécutable |
| FILE1 -ef FILE2 | Vrai si les fichiers ont le même lien physique |
| FILE1 -nt FILE2 | Vrai si FILE1 est plus récent que FILE2 |
| FILE1 -ot FILE2 | Vrai si FILE1 est plus ancien que FILE2 |
Exemple :
Le fichier /etc/group est un fichier ordinaire
$ test -f /etc/group
$ echo $?
0
$
Le fichier /etc/groupe n'existe pas (test avec l'autre syntaxe)
$ [ -f /etc/groupe ]
$ echo $?
1
$
Le fichier /etc/init.d existe et est un répertoire
$ [ -d /etc/init.d ]
$ echo $?
0
$
Le fichier /etc/group n'est pas un répertoire ou il n'exsite pas
$ test -d /etc/group
$ echo $?
1
$
Le fichier contenu dans la variable file n'est pas un répertoire ou n'existe pas
$ file=/etc/group
$ test -d $file
$ echo $?
1
$
L'utilisateur n'a pas le droit d'écriture sur le fichier /etc/group
$ [ -w /etc/group ]
$ echo $?
1
$