torosHelló!
egy barátom ezt küldte a kérdésedre, nem próbáltam ki, hogy hogyan működik, csak bemásolom a levelét:
A duplikatumnal egy nagyon 1xu megoldast tudok bash-ban :)
de ez csak azt irja ki, hogy mik a duplikatumok nev szerint.
if [ -z "$1" ];then echo -en "\n Usage `basename ${0}`:\n `basename
${0}` Kezdo_konyvtar\n
else
kezdo_konyvtar=$1
if [ -d $kezdo_konyvtar ]; then
### kiszedem a fajlokat egy listaba
find $kezdo_konyvtar -type f > .osszes_fajl_listaja.swp
echo "" .osszes_fajl_basename_listaja.swp
### csinalok belole egy csak fajlnevet tartalmazo listat. (ezt lehetne
elozobol tee-vel)
while read $sor;do
basename $sor >> .osszes_fajl_basename_listaja.swp
done < .osszes_fajl_listaja.swp
### tobbszoros basename-u fajlokat uniq-al szetszedem, amibol csak 1
van, azt nem nezem.
sort .osszes_fajl_basename_listaja.swp | uniq -c | tr -s \ | grep
-ve " 1 " > .egyszeres_lita.swp
### egyszeres elofordulasu listabol nezve megnezem, hogy mik a duplikat fajlok:
echo "" > ezek_vannak_duplikalva
while read $sor;do
grep $sor .osszes_fajl_listaja.swp >> ezek_vannak_duplikalva
done < .egyszeres_lita.swp
else echo "A megadott parameter nem konyvtar: $kezdo_konyvtar"
fi
rm -f .osszes_fajl_listaja.swp .osszes_fajl_basename_listaja.swp
.egyszeres_lita.swp
fi
Innen egy kicsit eltevedtem en is .)
de a lista megvann akkor lehet tovabb gondolkodni.
Perl-ben biztos 1xubb, mert vannak listak... Bar ez nem a memoriat
eszi, hanem csak a hdd-t.
Üdv:
tam-tadam