Le script que je vous propose ici sert à comparer deux arborescences pour repérer par rapport à celle de référence les répertoires/fichiers créés ainsi que les fichiers modifiés.
Je m’en sers essentiellement dans mon projet
./play.it pour repérer les fichiers modifiés/créés lors de sauvegardes ou de modification des options pour des jeux dont je n’ai pas accès au code source.
Voici la bête :
#!/bin/sh -e
##
# compare deux arborescences et retourne les différences
# $1 = arborescence modifiée
# $2 = arborecence de référence
##
dir_target="$(realpath "$1")"
dir_source="$(realpath "$2")"
if [ ! -d "${dir_target}" ]; then
printf 'Erreur !\n'
printf '%s: répertoire introuvable.\n' "${dir_target}"
fi
if [ ! -d "${dir_source}" ]; then
printf 'Erreur !\n'
printf '%s: répertoire introuvable.\n' "${dir_source}"
fi
cd "${dir_target}"
find . -type d | while read dir; do
if ! [ -e "${dir_source}/$dir" ]; then
printf 'nouveau répertoire : %s\n' "${dir}"
fi
done
find . -type f | while read file; do
if ! [ -e "${dir_source}/$file" ]; then
printf 'nouveau fichier : %s\n' "${file}"
fi
done
find . -type f | while read file; do
if [ -n "$(diff -q "${file}" "${dir_source}/${file}" 2>/dev/null)" ]; then
printf 'fichier modifié : %s\n' "${file}"
fi
done
exit 0
Et un exemple d’utilisation :
$ find-diff ~/.local/share/games/planescape-torment /usr/local/share/games/planescape-torment
nouveau répertoire : ./save
fichier modifié : ./torment.log
fichier modifié : ./torment.err
-----
Vos commentaires et suggestions sont les bienvenus, et si vous réutilisez ce script ça me ferait plaisir de savoir à quoi il peut vous servir
Dernière modification par vv222 (14-09-2015 00:15:40)
Jouer sous Debian ? Facile !
Ceterum censeo Barum esse delendam