Mostra notizie nelle discussioni
  • Avatar
    Scritto da
    Non Autenticato
    il 2012-11-14 21:02:59.0 alle 2012-11-14 21:02:59.0
    UFF
    Un tempo questo fòro pullulava di discussioni serie. A bocca storta

    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).
    • Avatar
      ☺
      Scritto da
      avvelentani
      Cubicolario
      il 2012-11-14 21:06:10.0 alle 2012-11-14 21:06:10.0
      Trollate totali: 18184
      Re: UFF
      Scritto da:
      > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
      >
      > 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
      • Avatar
        Scritto da
        Non Autenticato
        il 2012-11-14 21:17:27.0 alle 2012-11-14 21:17:27.0
        Re: UFF
        > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
        > >
        > > 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.
        • Avatar
          ☺
          Scritto da
          avvelentani
          Cubicolario
          il 2012-11-14 21:37:06.0 alle 2012-11-14 21:37:06.0
          Trollate totali: 18184
          Re: UFF
          Scritto da:
          > > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
          > > >
          > > > 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
          • Avatar
            Scritto da
            Non Autenticato
            il 2012-11-14 21:39:24.0 alle 2012-11-14 21:39:24.0
            Re: UFF
            > > > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
            > > > >
            > > > > 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.
            • Avatar
              ☺
              Scritto da
              avvelentani
              Cubicolario
              il 2012-11-14 21:44:14.0 alle 2012-11-14 21:44:14.0
              Trollate totali: 18184
              Re: UFF
              Scritto da:
              > > > > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
              > > > > >
              > > > > > 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
              • Avatar
                Scritto da
                Non Autenticato
                il 2012-11-14 23:22:09.0 alle 2012-11-14 23:22:09.0
                Re: UFF
                > > > > > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
                > > > > > >
                > > > > > > 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!
                • Avatar
                  ☺
                  Scritto da
                  gengiva
                  Utente privileggiato
                  il 2012-11-15 00:08:50.0 alle 2012-11-15 00:08:50.0
                  Trollate totali: 9100
                  Re: UFF
                  Scritto da:
                  > > > > > > > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
                  > > > > > > >
                  > > > > > > > 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 stronzate
                  Cercatelo con Google, ritardato! ©
    • Avatar
      ☺
      Scritto da
      ::1
      il 2012-11-15 00:27:11.0 alle 2012-11-15 00:27:11.0
      Trollate totali: 12321
      Re: UFF
      Scritto da:
      > Un tempo questo fòro pullulava di discussioni serie. A bocca storta
      >
      > 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.
      • Avatar
        ☺
        Scritto da
        avvelentani
        Cubicolario
        il 2012-11-15 08:29:20.0 alle 2012-11-15 08:29:20.0
        Trollate totali: 18184
        Re: UFF
        #!/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
        • Avatar
          ☺
          Scritto da
          ::1
          il 2012-11-15 12:48:21.0 alle 2012-11-15 12:48:21.0
          Trollate totali: 12321
          Re: UFF
          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.
          Young professional woman and busy mom.
          • Avatar
            Scritto da
            Non Autenticato
            il 2012-11-15 14:08:39.0 alle 2012-11-15 14:08:39.0
            Re: UFF
            > >
            > > #!/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. A bocca storta
          • Avatar
            ☺
            Scritto da
            avvelentani
            Cubicolario
            il 2012-11-15 14:15:18.0 alle 2012-11-15 14:15:18.0
            Trollate totali: 18184
            Re: UFF
            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.
            I think happiness is love
            - Vladimir Putin
            • Avatar
              ☺
              Scritto da
              ::1
              il 2012-11-15 19:22:10.0 alle 2012-11-15 19:22:10.0
              Trollate totali: 12321
              Re: UFF
              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 (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.
              • Avatar
                ☺
                Scritto da
                avvelentani
                Cubicolario
                il 2012-11-15 19:29:39.0 alle 2012-11-15 19:29:39.0
                Trollate totali: 18184
                Re: UFF
                Scritto 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
<softv>

Pagina generata in 152 millisecondi

Utenti attivi: 12 nell'ultimo minuto, 23 negli ultimi cinque minuti, 47 negli ultimi 15 minuti