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.
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.
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.
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 ?
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
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
| Sysop: | Keyop |
|---|---|
| Location: | Huddersfield, West Yorkshire, UK |
| Users: | 715 |
| Nodes: | 16 (3 / 13) |
| Uptime: | 146:18:22 |
| Calls: | 12,090 |
| Calls today: | 3 |
| Files: | 15,000 |
| Messages: | 6,517,501 |