• =?UTF-8?Q?Outils_de_comparaison_de_fichier_=C3=A0_deux_panneaux?=

    From =?UTF-8?Q?Beno=C3=AEt_Barbier?=@21:1/5 to All on Sun Feb 23 14:40:02 2025
    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.


    Merci d’avance.

    Benoît

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Basile Starynkevitch@21:1/5 to All on Sun Feb 23 15:00:01 2025
    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

    --
    Basile STARYNKEVITCH <[email protected]>
    8 rue de la Faïencerie
    92340 Bourg-la-Reine, France
    http://starynkevitch.net/Basile & https://github.com/bstarynk
    & https://github.com/RefPerSys/RefPerSys/

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bernard Schoenacker@21:1/5 to All on Sun Feb 23 15:00:01 2025
    Bonjour,

    Cher Barbier, voici un début de piste :

    https://github.com/sindrets/diffview.nvim

    Mais il faut installer neovim...

    Ensuite, pour du code et qui fait le café :

    Emacs

    https://github.com/mgalgs/diffview-mode


    Bonne chance pour la suite


    Merci

    @+

    Bernard

    ----- Mail original -----
    De: "Benoît Barbier" <[email protected]>
    À: "Liste Debian" <[email protected]>
    Envoyé: Dimanche 23 Février 2025 14:36:19
    Objet: Outils de comparaison de fichier à deux panneaux

    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.


    Merci d’avance.

    Benoît

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From =?utf-8?Q?S=C3=A9bastien?= Dinot@21:1/5 to All on Sun Feb 23 15:50:02 2025
    Benoît Barbier a écrit :
    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.

    xxdiff en cochant l'option « Recursive »

    Sébastien

    --
    Sébastien Dinot, [email protected]
    https://www.palabritudes.net/
    Ne goutez pas au logiciel libre, vous ne pourriez plus vous en passer !

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Charles Plessy@21:1/5 to All on Sun Feb 23 15:50:02 2025
    Le Sun, Feb 23, 2025 at 02:36:19PM +0100, Beno�t Barbier a �crit :

    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.

    icdiff -r ?

    Bonne soir�e

    --
    Charles Plessy Nagahama, Yomitan, Okinawa, Japan
    Debian Med packaging team http://www.debian.org/devel/debian-med Tooting from work, https://fediscience.org/@charles_plessy Tooting from home, https://framapiaf.org/@charles_plessy

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Marc Chantreux@21:1/5 to All on Sun Feb 23 21:50:01 2025
    salut,

    On Sun, Feb 23, 2025 at 02:36:19PM +0100, Benoît Barbier wrote:
    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 ?

    bref. si je résume ton problème, tu as un fichier qui est inchangé mais possiblement déplacé. la question est de savoir ou.

    si tel est le cas, j'aurais tendance à faire une recherche sur la taille

    find /le/repertoire/ou/chercher -type -f -size $(
    stat -c%s mon_fichier_perdu.txt
    )c > les_suspects.txt

    tu regardes la liste des suspects et si tu veux faire plus fin,
    tu peux fais

    md5sum mon_fichier_perdu.txt
    xargs -d'\n' -a les_suspects.txt md5sum > signatures.txt

    tu peux alors chercher la signature du fichier original parmis les
    suspects.

    bonne chasse.
    --
    Marc Chantreux

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From Bertrand Orvoine@21:1/5 to All on Mon Feb 24 08:10:01 2025
    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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)
  • From [email protected]@21:1/5 to All on Mon Feb 24 18:40:01 2025
    Bonjour,
    Ayant trouvé quelques minutes, je viens de tenter une recherche sur :
    outil pour comparer fichiers et dossiers Linux en local

    Voici quatre liens qui peuvent éclairer le sujet : https://fr.linux-console.net/?p=17836
    https://fr.linux-console.net/?p=998 https://fr.ilinuxgeek.com/article/9-best-file-comparison-and-difference-diff-tools-for-linux
    https://fr.ilinuxgeek.com/article/how-to-compare-local-and-remote-files-in-linux

    Bonne découverte
    Cassis




    ----- Mail d'origine -----
    De: Bertrand Orvoine <[email protected]>
    À: [email protected]
    Envoyé: Mon, 24 Feb 2025 08:00:46 +0100 (CET)
    Objet: 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

    --- SoupGate-Win32 v1.05
    * Origin: fsxNet Usenet Gateway (21:1/5)