Logiciel effacant les fichiers doublon - Logiciels - Linux et OS Alternatifs
Marsh Posté le 29-06-2005 à 01:05:49
Tu arrives à avoir des dossiers avec plusieurs fichiers portant exactement le même nom ? Euh... Comment fais-tu ?!
Marsh Posté le 29-06-2005 à 01:08:52
Je pense qu'il veut parler de fichiers identiques mais avec un nom différent
Bref, un petit script bash avec md5sum + sort -n + cut/awk devrait faire l'affaire
Marsh Posté le 30-06-2005 à 12:04:43
Pillow a écrit : Je pense qu'il veut parler de fichiers identiques mais avec un nom différent |
oui c'est ca ou alors dans des dossiers différents !
md5sum + sort -n + cut/awk ---> KESAKO ????
Marsh Posté le 30-06-2005 à 12:12:44
md5sum : calcul le hash md5 d'un fichier (c'est à dire le contenu du fichier est associé à une valeur. Si deux fichiers sont identiques, leurs hashs seront identiques.
ex: md5sum /etc/fstab -> "afa752dc62e45ca3d84c01b2550c009b /etc/fstab"
sort -n : on regroupe la liste des fichiers par hash
donc la liste sera un groupage des noms des fichiers ayant un contenu identique.
cut et awk : traitement de cette liste
donc en gros voici le cheminement :
1- lister tous les fichiers (ex: find ./ -type f)
2- calculer leur hash (md5sum)
3- réagencer la liste dans le but d'avoir des groupes de fichiers ayant le même hash (sort -n)
4- script awk regardant si le fichier est un doublon, si oui le mettre dans une liste.
5- supprimer les fichiers contenus dans la liste (rm)
Marsh Posté le 30-06-2005 à 12:28:03
Oui, c'est ça.
Bon, exemple à l'arrache, qui vaut ce qu'il vaut. À mettre dans un fichier (effacer_doublons.sh par exemple)
#! /bin/bash |
Veuillez garder à l'esprit que ce script efface des fichiers sans rien demander, et que l'auteur (moi ) n'a pas dormi cette nuit, a plus de café que de sang dans les veines , a tapé ce post directement dans la fenêtre de réponse et n'a fait que quelques tests sommaires S'il détruit votre disque dur ou tue votre chien, ce n'est pas ma faute
Ceci étant dit, l'idée est là, il n'y a qu'à modifier selon les besoins. Pour utiliser:
$ chmod +x effacer_doublons |
C'est à adapter (et à tester sur des dossiers dont vous avez une copie bis )
Marsh Posté le 30-06-2005 à 12:56:02
je pense que 100top ne comprendra pas le déroulement du script donc je vais essayer de lui expliquer :
Code :
|
On regarde le nombre de paramètres envoyés au script, si aucun paramètre n'est envoyé, par défaut on examine tous les fichiers du répertoire courant (*)
Code :
|
on calcul le hash des fichiers puis on les regroupe par hash identique (sort -n) et on les analyse.
Code :
|
on récupère le hash qui est en fait le premier champ dans la chaine de caractère retourné par md5sum. Ex :
"afa752dc62e45ca3d84c01b2550c009b /etc/fstab" on récupère
"afa752dc62e45ca3d84c01b2550c009b"
Code :
|
Un peu d'algorithmique :
on compare la valeur du hash avec celle du hash précédent, si les deux valeurs sont identique ("X$sum"="X$oldsum" ) alors on supprime le fichier.
Le nom du fichier est récupère de la chaine de caractère : sachant que la taille de la valeur du hash fait 35 caractères, on récupère les caractères après le 35ème caractères -> on a ainsi le nom du fichier.
La valeur hash courant devient la valeur hash précédente
Code :
|
Marsh Posté le 29-06-2005 à 00:55:53
bonjours,
en fait je voulais savoir s'il existait un logiciel qui permet d'effacer les fichiers qui sont en double dans un répertoire !?
genre dans un disque dur ya deux fois les memes dossiers avec les memes images et il le detecte et il demande de les effacers !
ca existe ou pas ?