Si tu veux vérifier que les liens symboliques pointent bien vers les mêmes fichiers (même si les destinations n'existent pas), il faut une étape supplémentaire : appeler "find dossier1 -type l -printf '%P -> %l\n' " pour déterminer les cibles de tous les liens symboliques, puis comparer les sorties des find.
Ensuite, si tu veux comparer les fichiers existants, et ignorer quand un lien n'existe pas, tu ne dois pas utiliser le code de retour de diff, mais regarder sa sortie, et vérifier qu'elle ne contient aucune ligne, en dehors des messages d'erreurs pour les liens symboliques :
diff -qr dossier1 dossier2 2>/dev/null | grep -qm1 ""
$? vaut 1 s'il n'y a pas de différences, et 0 s'il y en a.
(grep -m1 "" va retourner si au moins une ligne rentre, ou si à l'inverse aucune n'est entrée)
# en gardant diff
Posté par Octabrain . En réponse au message diff et les liens symboliques. Évalué à 3.
Ensuite, si tu veux comparer les fichiers existants, et ignorer quand un lien n'existe pas, tu ne dois pas utiliser le code de retour de diff, mais regarder sa sortie, et vérifier qu'elle ne contient aucune ligne, en dehors des messages d'erreurs pour les liens symboliques :
diff -qr dossier1 dossier2 2>/dev/null | grep -qm1 ""
$? vaut 1 s'il n'y a pas de différences, et 0 s'il y en a.
(grep -m1 "" va retourner si au moins une ligne rentre, ou si à l'inverse aucune n'est entrée)