riconoscere in modo univoco un file
Moderatore: Staff
Regole del forum
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
1) Citare sempre la versione di Slackware usata, la versione del Kernel e magari anche la versione della libreria coinvolta. Questi dati aiutano le persone che possono rispondere.
2) Per evitare confusione prego inserire in questo forum solo topic che riguardano appunto Gnu/Linux in genere, se l'argomento è specifico alla Slackware usate uno dei forum Slackware o Slackware64.
3) Leggere attentamente le risposte ricevute
4) Scrivere i messaggi con il colore di default, evitare altri colori.
5) Scrivere in Italiano o in Inglese, se possibile grammaticalmente corretto, evitate stili di scrittura poco chiari, quindi nessuna abbreviazione tipo telegramma o scrittura stile SMS o CHAT.
6) Appena registrati è consigliato presentarsi nel forum dedicato.
La non osservanza delle regole porta a provvedimenti di vari tipo da parte dello staff, in particolare la non osservanza della regola 5 porta alla cancellazione del post e alla segnalazione dell'utente. In caso di recidività l'utente rischia il ban temporaneo.
- danix
- Staff

- Messaggi: 3289
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 6.12.13 x86_64
- Desktop: i3
- Località: Verona (VR)
- Contatta:
riconoscere in modo univoco un file
Salve a tutti,
in questi giorni ho preso a controllare uno ad uno oltre 100 cd mp3 per conto di un amico, e ho notato che spesso delle canzoni si rincorrono su vari cd con nomi diversi, mi chiedevo, come fare per segnare univocamente un file in modo da scovare dei duplicati ed eliminarli; mi è venuto in mente di calcolare la somma md5 di ogni mp3 e di associarla al nome del file (magari utilizzando un database per rendere il tutto un pò più ordinato...), voi credete che sia fattibile praticamente?? si parla di oltre 80 GB di mp3...
Voi quale dbms utilizzereste?? Premetto che non sono pratico di database, ma mi basta che sia supportato da python (unico linguaggio che conosco un pochino) e per me va bene...
Spero che questo post non stoni troppo con il forum di slacky, ma siete la community italiana più "familiare" per me, e iniziare questa specie di sondaggio da voi mi è venuto quasi naturale, spero mi aiuterete...
Grazie mille
in questi giorni ho preso a controllare uno ad uno oltre 100 cd mp3 per conto di un amico, e ho notato che spesso delle canzoni si rincorrono su vari cd con nomi diversi, mi chiedevo, come fare per segnare univocamente un file in modo da scovare dei duplicati ed eliminarli; mi è venuto in mente di calcolare la somma md5 di ogni mp3 e di associarla al nome del file (magari utilizzando un database per rendere il tutto un pò più ordinato...), voi credete che sia fattibile praticamente?? si parla di oltre 80 GB di mp3...
Voi quale dbms utilizzereste?? Premetto che non sono pratico di database, ma mi basta che sia supportato da python (unico linguaggio che conosco un pochino) e per me va bene...
Spero che questo post non stoni troppo con il forum di slacky, ma siete la community italiana più "familiare" per me, e iniziare questa specie di sondaggio da voi mi è venuto quasi naturale, spero mi aiuterete...
Grazie mille
- danix
- Staff

- Messaggi: 3289
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 6.12.13 x86_64
- Desktop: i3
- Località: Verona (VR)
- Contatta:
grazie della risposta, il fatto è che voglio provare a creare questo programma autonomamente, per questo ho chiesto un dbms compatibile con python...comunque mi sto dirigendo verso mysql (che tra l'altro è installato di default nella mia slack 11), qualcuno ha idea di dove si possa reperire un pò di documentazione in italiano??michele.p ha scritto:...recentemente ho letto una recensione su un software che serve proprio a scovare i duplicati e, eventualmente, a cancellarli (naturalmente su hard disk)....ora però mi sfugge il nome....
grazie mille a tutti
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
JAVA + Postgress
Cosi ti fai anche una interfaccetta grafica swing!
Non dovrebbe essere complicato, anzi! Il fatto e' che l'md5 ha un suo tempo di calcolo computazionale.. La generazione del database, per ogni cd di 700Mb potrebbe durare circa 1 minuto per CD! potresti fare cosi:
1) per ogni file del cd, leggi nome file, calcoli md5
2) metti nel DATABASE nome + md5, se gia esiste un md5 uguale, lo segnali su interfaccia o su log..
3) lo farei multithread, cosi ad esempio per ogni CD, puoi calcolarti gli md5 di 2,3,4,5, ecc.. (pool di thread) in modo parallelo!
classico produttore consumatore.. io farei un thread che legge i files, e li mette in una queue (java.util.concurrent) e N consumatori che calcolano MD5 + insert nel database..
quasi quasi lo faccio io per gioco!
Non dovrebbe essere complicato, anzi! Il fatto e' che l'md5 ha un suo tempo di calcolo computazionale.. La generazione del database, per ogni cd di 700Mb potrebbe durare circa 1 minuto per CD! potresti fare cosi:
1) per ogni file del cd, leggi nome file, calcoli md5
2) metti nel DATABASE nome + md5, se gia esiste un md5 uguale, lo segnali su interfaccia o su log..
3) lo farei multithread, cosi ad esempio per ogni CD, puoi calcolarti gli md5 di 2,3,4,5, ecc.. (pool di thread) in modo parallelo!
classico produttore consumatore.. io farei un thread che legge i files, e li mette in una queue (java.util.concurrent) e N consumatori che calcolano MD5 + insert nel database..
quasi quasi lo faccio io per gioco!
- danix
- Staff

- Messaggi: 3289
- Iscritto il: ven 27 ott 2006, 19:32
- Nome Cognome: Danilo M.
- Slackware: 64 current
- Kernel: 6.12.13 x86_64
- Desktop: i3
- Località: Verona (VR)
- Contatta:
Il problema è che non conosco java... dovrei mettermi a studiare sia il linguaggio di programmazione che postgresql, mentre usando il python qualche base già ce l'ho... mi sono indirizzato su mysql solo indicativamente, infatti al momento sto solo girovagando sul sito per capirne un pò di più...alessiodf ha scritto:JAVA + PostgressCosi ti fai anche una interfaccetta grafica swing!
Non dovrebbe essere complicato, anzi! Il fatto e' che l'md5 ha un suo tempo di calcolo computazionale.. La generazione del database, per ogni cd di 700Mb potrebbe durare circa 1 minuto per CD! potresti fare cosi:
1) per ogni file del cd, leggi nome file, calcoli md5
2) metti nel DATABASE nome + md5, se gia esiste un md5 uguale, lo segnali su interfaccia o su log..
3) lo farei multithread, cosi ad esempio per ogni CD, puoi calcolarti gli md5 di 2,3,4,5, ecc.. (pool di thread) in modo parallelo!
classico produttore consumatore.. io farei un thread che legge i files, e li mette in una queue (java.util.concurrent) e N consumatori che calcolano MD5 + insert nel database..![]()
quasi quasi lo faccio io per gioco!
grazie mille per la risposta...
- masalapianta
- Iper Master

- Messaggi: 2775
- Iscritto il: lun 25 lug 2005, 0:00
- Nome Cognome: famoso porco
- Kernel: uname -r
- Desktop: awesome
- Distribuzione: Debian
- Località: Roma
- Contatta:
- alessiodf
- Linux 3.x

- Messaggi: 823
- Iscritto il: ven 14 ott 2005, 21:04
- Slackware: current
- Kernel: 2.6.26.4
- Desktop: Kde 4.1
- Località: Roma
- Contatta:
aggira le variabili con "$x" cosi puoi avere anche spazi ecc...masalapianta ha scritto:for i in `find directory/ -type f`; do md5sum $i;done|awk '{print "insert into tabella (hash,file) values ('\''"$1"'\'','\''"$2"'\'');"}'|mysql nomedb
(ovviamente i file non devono contenere spazi nel nome, ma su *nix questo dovrebbe essere normale)
Codice: Seleziona tutto
for i in `find directory/ -type f`; do
md5sum "$i";done | awk '{print "insert into tabella (hash,file) values ('\''"$1"'\'','\''"$2"'\'');"}' | mysql nomedb