[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Outils de comparaison de fichier à deux panneaux



	Bonjour,

Ca ne répond pas entièremet au probleme, mais peut-être regarder
du coté de fdupes pour trouver 2 fichiers au contenu identique :

FDUPES(1)                                      General Commands Manual                                     FDUPES(1)

NAME
       fdupes - finds duplicate files in a given set of directories

SYNOPSIS
       fdupes [ options ] DIRECTORY ...

DESCRIPTION
       Searches the given path for duplicate files. Such files are found by comparing file sizes and MD5 signatures,
       followed by a byte-by-byte comparison.



A+

Le Sun, Feb 23, 2025 at 03:28:25PM +0100, Benoît Barbier a écrit :
> Bonjour,
> 
> 
> C'est juste à un instant T (pas besoin de crontab) comparer les fichiers du
> disque d'un ordi à un disque externe. Et c'est bien sur le système de
> fichier local d'un pc (pas d'un serveur qui fait de nombreuse écritures en
> permanence).
> 
> Il n'est même pas nécessaire de retrouver deux fichiers de nom distincts
> mais de contenus identiques.
> 
> Je me suis demandé si je ne pourrais pas opter pour un outil rudimentaire
> DIY en bash avec zenity:
> 
> Faire une mise à jour de la liste des fichiers du système avec updatedb
> (disque externe non branché)
> https://manpages.org/updatedb
> 
> 
> Boucler sur tous les fichiers du disque externe jusqu'au fond de chaque
> arborescence.
> Pour chaque fichier cliqué :
> locate nomFichier
> 
> si trouvé comparer le plus récent
> Si pas trouvé proposer de le copier dans le panneau opposé.
> 
> Un truc aussi rudimentaire me conviendrait pour mettre de l'ordre dans des
> fichiers à un instant T sur un PC, qui ne fait rien d'autre.
> Pas sur un serveur qui écrit en permanence sur le disque
> 
> Mais si ça existe, je prends!
> 
> Je ne vais pas réinventer la roue, même si ça peut être amusant à écrire !
> ;-)
> 
> Est-ce que je dis une grosse bêtise et sous-estime la difficulté de la tâche
> ?
> 
> --
> 
> Benoît
> 
> Le 23/02/25 à 14:55, Basile Starynkevitch a écrit :
> > On Sun, 2025-02-23 at 14:36 +0100, Benoît Barbier wrote:
> > > Bonjour,
> > > 
> > > Je recherche un outil de comparaison de répertoires à deux panneaux qui
> > > fonctionnerait comme un outil diff comme meld pour comparer deux
> > > répertoires ou deux arborescences.
> > > Avec la possibilité de pousser la différence à gauche ou à droite, qui
> > > montre le plus récent.
> > > Cf.
> > > https://meldmerge.org/
> > > 
> > > Le problème qui se pose : dans le panneau de gauche j’ai un fichier sur
> > > un disque dur externe, il n’est pas dans le répertoire du même nom dans
> > > le panneau de droite, mais ne serait-il pas autre part dans
> > > l’arborescence du disque dur ?
> > > 
> > > Il faudrait un outil qui travail avec la base de donnée updatedb/locate
> > > ou qui a une autre méthode pour me signaler que le fichier n’est pas
> > > dans le panneau opposé mais autre part sur le disque.
> > 
> > Il me semble que GNU emacs a un mode qui convient.
> > 
> > s'il s'agit de retrouver deux fichiers de nom distincts mais de contenus
> > identiques, on pourrait s'inspirer de ccache https://ccache.dev/ comme de
> > https://www.softwareheritage.org/
> > 
> > Ou envisager de construire une base de données (peut-être avec Redis ou sqlite)
> > qui stocke des métadonnées dont une signature (md5sum ou sha512) du contenu de
> > chaque fichier (préalablement balayé, par exemple toutes les heures, par un
> > démon lancé par crontab).
> > 
> > Le problème posé me parait toutefois insoluble en toute rigueur sur un Linux,
> > car deux processus différents peuvent accéder à (voire modifier) un même fichier
> > simultanément.
> > 
> > Sans verrouillage explicite et  volontaire par des appels systèmes tels que
> >   https://man7.org/linux/man-pages/man3/lockf.3.html   ou
> > https://man7.org/linux/man-pages/man2/flock.2.html ou
> > https://man7.org/linux/man-pages/man3/flockfile.3.html ou
> > https://man7.org/linux/man-pages/man2/mlock.2.html le comportement n'est pas
> > prévisible ni même défini.
> > 
> > C'est déjà compliqué sur un système de fichier local (voir
> > https://man7.org/linux/man-pages/man7/inode.7.html comme ext4 ou xfs) et encore
> > plus compliqué sur un système de fichier distant (NFS).
> > 
> > D'ailleurs les SGBD comme les versionneurs existent aussi pour ça.
> > 
> > Voyez aussi http://projects.camlcity.org/projects/omake.html qui pourrait avoir
> > du code convenable (à compléter).
> > 
> > En fait je crois que le problème est insoluble si on cherche une solution
> > robuste et générale.
> > 
> > Librement
> > 
> 

-- 
Bertrand ORVOINE


Reply to: