Re: Éliminer des fichiers doublons

Yves de Brauer <[email protected]>
Newsgroups gmane.linux.mandrake.expert.french
Message-ID <[email protected]>
François-Xavier Pasquier a écrit :
> Pas de soucis :)
> 
> find  -> trouve tout ce qui existe à partir d'un point donné
> (find ./plop pour modifier le point de départ)
> 	-type f -> on ne veut que des fichiers
> 	-print0 -> option pour séparer les fichiers par des \0 plutôt que des \n ce 
> qui est bien pratique avec des fichiers qui ont des noms bizarres (utf8, 
> caractères accentués, etc ...)
> 
> on envoie ça dans xargs. Son boulot à lui c'est de prendre ce qu'il y a en 
> entrée standard (dans le pipe) et de l'envoyer dans la commande qui suit.
> En gros je veux faire 'md5sum' sur chaque fichiers que find à trouvé.
> 	-0 -> option pour dire à xargs que les fichiers sont séparé par des \0 (le 
> pendant de -print0 du find, s'bien pratique ca.)
> 	-i -> pour interactive, ca veut dire que je place l'argument ou je veux. 
> l'argument c'est {}, c'est chaque fichier trouvé.
> 
> donc 
> 	xargs -0 -i md5sum {} 2>/dev/null -> on applique md5sum à chaque fichier.
> 
> après j'ai repris ce que tu avais trouvé, on trie
> 	sort
> on élimine les fichiers redondants (qui ont le même checksum), 
> 	uniq -w 32 -> il vérifie que sur les premiers 32 caractères ce qui veut dire 
> que 2 fichiers qui n'ont pas le même nom mais le même contenu seront considérés 
> comme redondant (on en garde qu'un.)
> 
> on envoie ca dans 'awk'. je vais pas décrire awk, il me faudrait une semaine, 
> mais en gros, comme je connaissais pas 'cut', je l'ai utilisé ici pour 
> récupérer le nom du fichier. 
> $2 -> c'est le nom du fichier (2ième champ dans la ligne)
> et le print me permet d'écrire la ligne suivante : 
>     mv myfile ~/fichiers_uniques
> 
> Une fois que j'ai écris cette ligne, il faut l'exécuter !
> On envoie tout dans 'sh'
> 
> CQFD.
> 
> find -type f -print0 | xargs -0 -i md5sum {} 2>/dev/null | sort | uniq -w 32 | 
> awk '{ print "mv "$2" ~/fichiers_uniques" }' | sh
> 
> Et pour ta question, le nom du fichier n'est pas pris en compte dans l'analyse, 
> uniquement le checksum, qui symbolise le contenu.
> 
> --
> FX
> 
Merci vraiment beaucoup pour toutes ces explications bien détaillées. Je 
vais faire des tests ce WE.

Yves
message-footer.txt (text/plain, 150 B)
=================================
http://www.mandriva.com/linux/

Services & cert. hw on http://store.mandriva.com/
=================================
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.