-
UFFScritto daNon Autenticatoil 2012-11-14 21:02:59.0 alle 2012-11-14 21:02:59.0Un tempo questo fòro pullulava di discussioni serie.

Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-14 21:06:10.0 alle 2012-11-14 21:06:10.0Trollate totali: 18184Scritto da:
> Un tempo questo fòro pullulava di discussioni serie.
>
> Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
E` facile.I think happiness is love
- Vladimir Putin-
Re: UFFScritto daNon Autenticatoil 2012-11-14 21:17:27.0 alle 2012-11-14 21:17:27.0> > Un tempo questo fòro pullulava di discussioni serie.

> >
> > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
>
> E` facile.
Forse.-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-14 21:37:06.0 alle 2012-11-14 21:37:06.0Trollate totali: 18184Scritto da:
> > > Un tempo questo fòro pullulava di discussioni serie.
> > >
> > > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
> >
> > E` facile.
>
> Forse.
Quanto mi dai se te lo faccio in meno di 5 righe di bash?I think happiness is love
- Vladimir Putin-
Re: UFFScritto daNon Autenticatoil 2012-11-14 21:39:24.0 alle 2012-11-14 21:39:24.0> > > > Un tempo questo fòro pullulava di discussioni serie.

> > > >
> > > > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
> > >
> > > E` facile.
> >
> > Forse.
>
> Quanto mi dai se te lo faccio in meno di 5 righe di bash?
Non voglio che me lo si faccia, ma che mi si spieghi come fare.-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-14 21:44:14.0 alle 2012-11-14 21:44:14.0Trollate totali: 18184Scritto da:
> > > > > Un tempo questo fòro pullulava di discussioni serie.
> > > > >
> > > > > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
> > > >
> > > > E` facile.
> > >
> > > Forse.
> >
> > Quanto mi dai se te lo faccio in meno di 5 righe di bash?
>
> Non voglio che me lo si faccia, ma che mi si spieghi come fare.
Ah, ok allora aspettiamo suoranciata, cosi` almeno ho la soddisfazione poi di dirgli che ha scritto la risposta sbagliata.I think happiness is love
- Vladimir Putin-
Re: UFFScritto daNon Autenticatoil 2012-11-14 23:22:09.0 alle 2012-11-14 23:22:09.0> > > > > > Un tempo questo fòro pullulava di discussioni serie.

> > > > > >
> > > > > > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
> > > > >
> > > > > E` facile.
> > > >
> > > > Forse.
> > >
> > > Quanto mi dai se te lo faccio in meno di 5 righe di bash?
> >
> > Non voglio che me lo si faccia, ma che mi si spieghi come fare.
>
> Ah, ok allora aspettiamo suoranciata, cosi` almeno ho la soddisfazione poi di dirgli che ha scritto la risposta sbagliata.
UPPETE!-
Re: UFFScritto dagengivaUtente privileggiatoil 2012-11-15 00:08:50.0 alle 2012-11-15 00:08:50.0Trollate totali: 9100Scritto da:
> > > > > > > Un tempo questo fòro pullulava di discussioni serie.
> > > > > > >
> > > > > > > Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).
> > > > > >
> > > > > > E` facile.
> > > > >
> > > > > Forse.
> > > >
> > > > Quanto mi dai se te lo faccio in meno di 5 righe di bash?
> > >
> > > Non voglio che me lo si faccia, ma che mi si spieghi come fare.
> >
> > Ah, ok allora aspettiamo suoranciata, cosi` almeno ho la soddisfazione poi di dirgli che ha scritto la risposta sbagliata.
>
> UPPETE!
quoto
la cosa è sicuramente più interessante dell'aborto e delle altre stronzateCercatelo con Google, ritardato! ©
-
-
-
-
-
-
-
Re: UFFScritto da:
> Un tempo questo fòro pullulava di discussioni serie.
>
> Quasi quasi chiedo alla suora come si fa uno script in bash che controlli, per ogni file nell'albero di directory A, se ne esiste una copia nell'albero B (non necessariamente allo stesso percorso e non necessariamente con lo stesso nome, qui è il difficile).find /A/ -type f | while read firstFile ; do find /B/ -type f -size $(stat -c %s "$firstFile")c | \ while read secondFile ; do [[ "$(md5sum < "$firstFile")" = "$(md5sum < "$secondFile")" ]] && \ echo $firstFile è uguale a $secondFile done done
Spiegazione: per ogni file dell'albero A cerca tutti i files dell'albero B della medesima dimensione in bytes. Di quelli che trova ne verifica l'uguaglianza dell'hash md5.
**Modificato dall'autore il 15.11.2012 00:29**Young professional woman and busy mom.-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-15 08:29:20.0 alle 2012-11-15 08:29:20.0Trollate totali: 18184
#!/bin/bash join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1)I think happiness is love
- Vladimir Putin-
Re: UFFScritto da: avvelentani
>> #!/bin/bash > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) >#!/bin/bash java -jar CompareDirectories.jar
Nailed
`"la realta' non e' cosi' terrificante come vogliono farti credere" - Giambo ` - Wakko che cita Giambo
-
Re: UFFScritto da: avvelentani
>> #!/bin/bash > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) >
E` molto meno efficiente.Young professional woman and busy mom.-
Re: UFFScritto daNon Autenticatoil 2012-11-15 14:08:39.0 alle 2012-11-15 14:08:39.0> >
> > #!/bin/bash > > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) > >
>
> E` molto meno efficiente.
Azz, mi rendo conto che finché non avrò il NAS non disporrò di alberi da confrontare.
-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-15 14:15:18.0 alle 2012-11-15 14:15:18.0Trollate totali: 18184Scritto da: ::1
> Scritto da: avvelentani
> >> > #!/bin/bash > > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) > >
>
> E` molto meno efficiente.
Non dire boiate figliolo:
n = numero di file
il tuo algoritmo nel caso peggiore calcola O(n**2) checksum e in ogni caso fa O(n) scansioni ricorsiva, ciascuna dal costo O(n/2). Il mio fa una singola scansione ricorsiva e calcola O(n) checksum nel caso peggiore. Se l'euristica della dimensione dei file e` utile puo` essere facilmente incorporata nel mio algoritmo, inoltre il mio e` banalmente parallelo e con poche semplici modifiche puo` essere eseguito su migliaia di computer contemporaneamente.I think happiness is love
- Vladimir Putin-
Re: UFFScritto da: avvelentani
> Scritto da: ::1
> > Scritto da: avvelentani
> > >> > > #!/bin/bash > > > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) > > >
> >
> > E` molto meno efficiente.
>
> Non dire boiate figliolo:
>
> n = numero di file
>
> il tuo algoritmo nel caso peggiore calcola O(n**2) checksum e in ogni caso fa O(n) scansioni ricorsiva, ciascuna dal costo O(n/2). Il mio fa una singola scansione ricorsiva e calcola O(n) checksum nel caso peggiore. Se l'euristica della dimensione dei file e` utile puo` essere facilmente incorporata nel mio algoritmo, inoltre il mio e` banalmente parallelo e con poche semplici modifiche puo` essere eseguito su migliaia di computer contemporaneamente.
Il tuo algoritmo però consuma tutto il contenuto di tutti i files di entrambi gli alberi (una sola volta però rispetto al mio, ma posso migliorarlo con una tabella di lookup) mentre io mi fermo ai metadati del file system e guardo al contenuto solo quando è necessario (due files della stessa dimensione).
Io vinco nel contesto "pochi files grandi" e tu in quello "molti files piccoli".Young professional woman and busy mom.-
Re: UFFScritto daavvelentaniCubicolarioil 2012-11-15 19:29:39.0 alle 2012-11-15 19:29:39.0Trollate totali: 18184Scritto da: ::1
> Scritto da: avvelentani
> > Scritto da: ::1
> > > Scritto da: avvelentani
> > > >> > > > #!/bin/bash > > > > join -t " " -j 1 <(find $1 -exec md5sum {} \; | sort -k1,1) <(find $2 -exec md5sum {} \; | sort -k1,1) > > > >
> > >
> > > E` molto meno efficiente.
> >
> > Non dire boiate figliolo:
> >
> > n = numero di file
> >
> > il tuo algoritmo nel caso peggiore calcola O(n**2) checksum e in ogni caso fa O(n) scansioni ricorsiva, ciascuna dal costo O(n/2). Il mio fa una singola scansione ricorsiva e calcola O(n) checksum nel caso peggiore. Se l'euristica della dimensione dei file e` utile puo` essere facilmente incorporata nel mio algoritmo, inoltre il mio e` banalmente parallelo e con poche semplici modifiche puo` essere eseguito su migliaia di computer contemporaneamente.
>
> Il tuo algoritmo però consuma tutto il contenuto di tutti i files di entrambi gli alberi
E` quello che ho detto.
>(una sola volta però rispetto al mio, ma posso migliorarlo con una tabella di lookup)
E` sempre e comunque peggio.
> mentre io mi fermo ai metadati del file system e guardo al contenuto solo quando è necessario (due files della stessa dimensione).
Se vuoi aggiungere questa euristica al mio algoritmo lo puoi fare.
> Io vinco nel contesto "pochi files grandi" e tu in quello "molti files piccoli".
Tu vinci nel contesto "pochi files con la stessa dimensione" il numero e la dimensione dei file c'entrano poco perche' eliminata l'euristica della dimensione dei file il tuo algoritmo e` sistematicamente peggiore.I think happiness is love
- Vladimir Putin
-
-
-
-
-
-