Souvent en tant que débutant que je suis, je galère quand je fais mes propres scripts tout crades pour trouver des infos sur toutes les conditions et tests qu'offre bash, alors voilà un petit tableau qui me fait gagner du temps.

                                       
-a fichierle fichier indiqué existe
-e fichierle fichier indiqué existe
-b fichierle fichier indiqué est un noeud spécial qui décrit un périphérique en mode bloc
-c fichierle fichier indiqué est un noeud spécial qui décrit un périphérique en mode caractère
-d répertoirele répertoire indiqué existe
-f fichierLe fichier indiqué est un fichier régulier
-g fichierLe bit Set-GID du fichier indiqué est positionné
-h fichierLe fichier indiqué est un lien symbolique
-L fichierLe fichier indiqué est un lien symbolique
-G fichierLe fichier indiqué appartient au même groupe que le GID effectif du processus invoquant la commande test
-k fichierLe bit sticky du fichier indiqué est positionné
-n fichierLa longueur de la chaine est non nulle
-N fichierLe fichier a été modifié depuis son dernier acces en lecture
-O fichierLe fichier indiqué appartient au même utilisateur que l'UID effectif du processus invoquant la commande test
-p fichierLe fichier indiqué est un tube (file FIFO)
-r fichierLe fichier indiqué est lisible
-s fichierLa taille du fichier indiqué est non nulle
-S fichierLe fichier indiqué est une socket
-t descripteurLe descripteur de fichier correspond à un terminal
-u fichierLe bit Set-UID du fichier indiqué est positionné
-w fichierOn peut écrire dans le fichier indiqué
-x fichierLe fichier indiqué est executable
-z fichierLa longueur de la chaine indiquée est nulle
chaineLa chaine est non nulle
chaine1 = chaine2Les deux chaines sont identiques
chaine1 != chaine2Les deux chaines sont identiques
chaine1 < chaine2Les deux chaines sont identiques
chaine1 > chaine2Les deux chaines sont identiques
chaine1 -eq chaine2Les deux chaines sont identiques
chaine1 -ge chaine2La première valeur est supérieure ou égale à la seconde
chaine1 -gt chaine2La première valeur est strictement supérieure à la seconde
chaine1 -le chaine2La première valeur est inférieure ou égale à la seconde
chaine1 -lt chaine2La première valeur est strictement inférieure à la seconde
chaine1 -ne chaine2Les deux valeurs arithmétiques sont différentes
chaine1 -ef chaine2Le fichier1 est le même que le fichier2. Il peut s'agir de deux noms (liens physiques) différents dans le système de fichiers correspondant au même contenu sous-jacent. La comparaison concerne le numéro de périphérique de support et le numéro d'i-noeud.
chaine1 -nt chaine2La date de dernière modification du fichier1 est plus récente que celle du fichier2
chaine1 -ot chaine2La date de dernière modification du fichier1 est plus ancienne que celle du fichier2