odstraneni duplicitnich souboru

Ing. Vlastimil Pospíchal vpospichal na tiscali.cz
Pátek Březen 14 20:12:44 CET 2003


On Fri, Mar 14, 2003 at 01:56:01PM +0100, damned wrote:
> (ani nevim proc :) se mi tu postupem casu vytvorila jista kosata 
> adresarova struktura se spustou duplicitnich souboru. hledal jsem 
> skriptik, ktery by mi je pomohl odstranit.
> z konference jsem vycucal toto:
> 
>    find "$@" -type f -exec md5sum '{}' ';' >> ALL
>    cat ALL | sort > SUMS
>    cut -f 1 -d ' ' SUMS | uniq -d > DUPL
>    join SUMS DUPL
> 
> vystupem je seznam _vsech_ souboru duplicitnich md5 digestu:
> 
>    33b033adee5f4aa0b676b94c43de6e30 ./001/original.tar.gz
>    33b033adee5f4aa0b676b94c43de6e30 ./003/kopie.tar.gz
>    33b033adee5f4aa0b676b94c43de6e30 ./012/jina_kopie.tar.gz
>    dd35ac33232aa51feefcf85ac563e7a4 ./original.tar.bz2
>    dd35ac33232aa51feefcf85ac563e7a4 ./kopie.tar.gz
>    ...
> 
> stale se mi vsak nedari najit kombinaci prikazu jimiz bych z tohoto 
> seznamu nejdrive odstranil prvni radek z kazdeho bloku stejnych 
> md5sum-u a nasledne vyextrahoval pouze cesty k duplicitnim souborum. 
> tedy abych ziskal seznam, ktery pak budu moci predhodit napr. programu 
> 'rm', 'mv', a pod. :
> 
>    ./003/kopie.tar.gz
>    ./012/jina_kopie.tar.gz
>    ./kopie.tar.gz
> 
> diky za vas cas,
> cezi

#!/bin/sh
old="xxxxxxxxxxxx"
find . -type f -exec md5sum '{}' ';' | sort |\
   while read md5 nazev; do
      test "$old" == "$md5" && rm "$nazev"
      old="$md5"
   done

Kit
-- 
Ing. Vlastimil Pospíchal
http://www.hoteldrnholec.cz


Další informace o konferenci Linux