ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Postez ici vos scripts Bash, Python, etc.
Répondre
Avatar du membre
wilf39
Messages : 4
Enregistré le : mer. 26 juin 2024 21:33
Localisation : jura

ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Message par wilf39 »

Bonsoir à toutes et à tous

j'ai deux média ou l'un est l'originale et l'autre est une copie de celui-ci. je veus récupérer le média d'origine mais avant je veut être sûr qu'il n'ya pas eu d'autre fichier copier après la sauveguarde. et si c'est le cas les trouver puis les copier sur le le média de sauvegarde.



donc je me suis dis et pourquoi pas faire une recherche un ligne de commande.

1 donc je fais cette ligne de commande et cela permets de mettre
find /media/user/seagateB/doc_Gpc/ -type f -print0 | logsave -a ListeF2.txt xargs -0 diff -u /media/user/dossier/

et j'en trouvé une autre mais cela me trouve les fichiers identique

diff -a /media/user/dossier/ /media/user/seagateB/doc_Gpc/ | grep -v "^>" > listeF4.txt

mais je sèche un peu pour arriver à trouver exactement les fichiers en plus

est e quelq'un à déjà été rencontré à ce cas là

en vous remerciant par avance pour vos retour de réponse.

Cordialement Wilf
Il n'y a jamais de problème mais toujours des solutions.

CPU: 6-core Intel Core i7-4930K (-MT MCP-) speed/min/max: 1992/1200/3900 MHz
Kernel: 5.15.0-112-generic x86_64 Up: 9h 30m Mem: 3977.6/32029.8 MiB (12.4%)
Storage: 3.39 TiB (40.4% used) Procs: 339 Shell: Bash inxi: 3.3.13

Avatar du membre
serged
Messages : 900
Enregistré le : jeu. 16 juil. 2015 07:59
Localisation : Montrouge (France)

Re: ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Message par serged »

Perso j'utiliseMidnight Commander et je fais une comparaison "visuelle".
LinuxMint Virginia Cinnamon et d'autres machines en MATE, XFCE... 20.x , 21.x ou 19.x
Tour : Asus F2A55 / AMD A8-5600K APU 3,6GHz / RAM 17Go / SSD 4To /Nvidia GeForce GT610 / LM21.3 Cinnamon
Portable : LDLC Mercure MH : Celeron N3450 /RAM 4Go / Intel HD graphics 500 i915 / biboot Win 10 (sur SSD) - LM21.3 MATE (sur HDD)

Avatar du membre
wilf39
Messages : 4
Enregistré le : mer. 26 juin 2024 21:33
Localisation : jura

Re: ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Message par wilf39 »

Bonjour Serged

Gratitude infinie pour information et sa marche plutôt bien j'ai même pu copier directement avec mc
Il n'y a jamais de problème mais toujours des solutions.

CPU: 6-core Intel Core i7-4930K (-MT MCP-) speed/min/max: 1992/1200/3900 MHz
Kernel: 5.15.0-112-generic x86_64 Up: 9h 30m Mem: 3977.6/32029.8 MiB (12.4%)
Storage: 3.39 TiB (40.4% used) Procs: 339 Shell: Bash inxi: 3.3.13

Avatar du membre
tioker
modérateur
Messages : 976
Enregistré le : sam. 6 mai 2017 00:33
Localisation : Anjou...Feu !
Contact :

Re: ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Message par tioker »

Bonsoir

J'ai peut-être une solution.
La commande rsync synchronise deux repertoires/espaces ...
On peut synchroniser en récursuf (option -r) et en verbose (-v).
Mais on peut aussi simuler une synchronisation avec l'option (--dry-run).
Ainsi je fais le test suivant.
Soit un répertoire DocOfficiels dans mon répertoire Documents.
Soit sa sauvegarde sur le répertoire Tempo. Commande (-rvaz pour récursuf verbose droits et compression)

Code : Tout sélectionner

rsync -rvaz /home/patrick/Documents/DocOfficiels/ /home/patrick/Documents/Tempo
Si je fais un

Code : Tout sélectionner

rsync --dry-run -rv /home/patrick/Documents/DocOfficiels/ /home/patrick/Documents/Tempo
Je ne trouve rien de différence
Mais si je crée un fichier

Code : Tout sélectionner

touch /home/patrick/Documents/DocOfficiels/toto.lis
la même commande me dira

Code : Tout sélectionner

rsync --dry-run -rv /home/patrick/Documents/DocOfficiels/ /home/patrick/Documents/Tempo
sending incremental file list
toto.lis

sent 2.911 bytes  received 30 bytes  5.882,00 bytes/sec
total size is 47.147.290  speedup is 16.031,04 (DRY RUN)
alors que sur Tempo le fichier toto n'existe toujours pas.

Attention: je crois que la commande vérifie les fichiers par leur nom et leur date de modification. Rsync est d'ailleurs le protocole qui est utilisé par Timeshift par exemple.

Voilà, si ça peut aider...
Distrib : Linux Mint 22 Desktop : X-Cinnamon
Kernel : 6.8.0-39-generic CPU : AMD Ryzen 5 5600H with Radeon Graphics RAM : 14Gi
CG : NVIDIA Corporation TU117M [GeForce GTX 1650 Mobile / Max-Q] (rev a1)
Advanced Micro Devices, Inc. [AMD/ATI] Cezanne [Radeon Vega Series / Radeon Vega Mobile Series] (rev c6)

Avatar du membre
Mia88
Messages : 1345
Enregistré le : ven. 18 nov. 2016 08:42
Localisation : Lorraine

Re: ligne de commande pour comparer deux dossiers si il ya une différence de fichier

Message par Mia88 »

Bonjour,
wilf39 a écrit :
jeu. 11 juil. 2024 00:14
j'en trouvé une autre mais cela me trouve les fichiers identique

diff -a /media/user/dossier/ /media/user/seagateB/doc_Gpc/ | grep -v "^>" > listeF4.txt
J'utilise la commande diff avec l'option -q pour trouver les différences entre des dossiers.
diff -qr dossier_1/ dossier_2/

L'option -q permet de n'afficher que les différences (cela évite que tous les fichiers identiques soient listés).
L'option -r (recursive) permet de comparer les sous-dossiers.

Si les fichiers sont identiques mais n'ont pas exactement le même nom, il n'y a pas de comparaison, il est juste indiqué que ces dossiers existent dans un dossier et pas dans l'autre.

C'est juste pour info puisque la solution de Midnight Commander proposée par Serged convient ;)
Mint Cinnamon 21.1 / Intel Xeon CPU E3-1270 V2 3.5GHz x 4 / Ram 15.6 Go / CG NVIDIA GF106GL [Quaro 2000]

Répondre