Pagina 3 di 5 primaprima 1 2 3 4 5 ultimoultimo
Visualizzazione dei risultati da 21 a 30 su 41
  1. #21
    V+K

  2. #22
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da valer_85
    bisogna vedere se il contenuto è diverso, xkè x ogni file nella cartella viene creato un file filediff.java in cui vanno scritte le modifiche...
    Allora ... riassumiamo così: tu hai 2 file identici (stesso nome, data/ora, ecc...) messi ognuno in una sua directory e devi controllare se avvengono delle modifiche su uno o sull'altro??? È giusto??

    Comunque, in generale, si potrebbe fare così. Usi l'opzione -nt di test (quindi if [ $FILE1 -nt $FILE2 ]) per vedere se uno è più recente dell'altro. A quel punto fai un bel diff.
    Spero di aver detto bene.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  3. #23
    uhm... buona idea...
    cmq nn è proprio così:
    ho 2 cartelle piene di file che inizialmente sono identici, una cartella rimane sempre =, mentre il contenuto dell'altra POTREBBE cambiare...
    la cosa particolare, di cui nn capisco l'utilità, è che PER OGNI file dev'essere creato un file filediff.estensione che dev'essere riempito con le eventuali modifiche...

    esempio: c'è il file prova.java che viene modificato aggiungendo una riga "ciao".
    il file provadiff.java che era stato precedentemente creato e che inizialmente era vuoto, dev'essere editato e si deve aggiungergli "ciao"...

    capito? è un pò intricato...
    V+K

  4. #24
    V+K

  5. #25
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da valer_85
    uhm... buona idea...
    cmq nn è proprio così:
    ho 2 cartelle piene di file che inizialmente sono identici, una cartella rimane sempre =, mentre il contenuto dell'altra POTREBBE cambiare...
    la cosa particolare, di cui nn capisco l'utilità, è che PER OGNI file dev'essere creato un file filediff.estensione che dev'essere riempito con le eventuali modifiche...

    esempio: c'è il file prova.java che viene modificato aggiungendo una riga "ciao".
    il file provadiff.java che era stato precedentemente creato e che inizialmente era vuoto, dev'essere editato e si deve aggiungergli "ciao"...

    capito? è un pò intricato...
    Ciao ... in effetti è decisamente un po' intricato. Ci ho dovuto pensare un bel po' ma poi ho visto che è perfettamente fattibile (certo ... non è banale).

    Io ti posto il codice che ho scritto per fare delle prove:
    codice:
    #!/bin/bash
    
    DIR=$1
    
    FCHECK=/tmp/fcheck.$$.tmp
    FCHECK2=/tmp/fcheck2.$$.tmp
    
    function cleanup ()
    {
        rm $FCHECK $FCHECK2 2>/dev/null
        exit 0
    }
    
    trap cleanup SIGINT
    
    touch $FCHECK $FCHECK2
    
    while true; do
        for FILE in $DIR/*; do
            if [ $FILE -nt $FCHECK ]; then
                echo "file aggiornato: $FILE"
    
                if [ $FILE -nt $FCHECK2 ]; then
                    touch -m -r $FILE $FCHECK2
                fi
            fi
        done
    
        cp -p $FCHECK2 $FCHECK
    
        sleep 10
    done
    Non so però cosa possa esserti chiaro o no di questo script.

    Il concetto è comunque semplice. Filtrare ed ottenere tutti i file che hanno un "modification time" più recente di quello di un file temporaneo che nel mio script è indicato con $FCHECK. Alla fine di ogni ciclo (prima della sleep) si fa in modo che questo file di check abbia il modification time uguale a quello del file più recente fino a quel momento, in modo che nel ciclo successivo possano essere filtrati solo i file che sono più recenti ancora di quelli filtrati nel ciclo precedente.

    Se non è chiaro ... fammi sapere.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  6. #26
    grazie mille! xò non è molto chiaro effettivamente
    cmq funziona, il problema, almeno da quel ke mi sembra, è che non scrive le modifiche nel file file-diff.blabla... cioè, te lo rispiego xkè è veramente intricato da capire, l'ho dovuto leggere un bel pò di volte
    oltre a rilevare il file che è stato modificato ( e fino qui la tua fatica non è stata inutile ) bisogna scrivere la modifica effettuata su un file a parte chiamato diff-nomefileoriginario.estensioneoriginaria ...
    spero di essere stato chiaro.
    grazie ancora
    V+K

  7. #27
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da valer_85
    cmq funziona, il problema, almeno da quel ke mi sembra, è che non scrive le modifiche nel file file-diff.blabla...
    Ah beh ... quello devi farlo tu ...
    Io mi sono concentrato solo sull'algoritmo di ricerca dei file modificati basandosi sul loro modification time.

    Una volta che è stato trovato un file modificato, allora fai il diff e tutto quello che vuoi. Dovrebbe essere, credo, abbastanza semplice.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

  8. #28
    ok, sto provando...
    allora,
    codice:
    if [ $FILE -nt $FCHECK ]; then
                echo "file aggiornato: $FILE"
    il file modificato sarebbe $FILE giusto? e il file vecchio $FCHECK ?
    se è così ho provato a fare:
    codice:
    echo differenza: `diff $FILE $FCHECK`
    xò mi stampa tutto! così:
    codice:
     differenza:1,12d0 < 1 < 2 < 3 < 4 < 5 < 6 < 7 < cavolo < < < <
    la modifica era solo "cavolo"... :master:
    V+K

  9. #29
    mi sono accorto ora che forse la cosa è + semplice di come hai fatto tu...
    xkè la modifica è da rilevare rispetta a un file che non cambia mai, contenuto in un'altra dir...
    ti ricordi l'inizio dell'esercizio? ci sono 2 cartelle: una che nn cambia mai di contenuto, e l'altra in cui possono essere cancellati / aggiunti /modificati dei file... inizialmente quindi il contenuto è lo stesso, poi le modifiche devono essere rilevate rispetto al file corrispondente nella prima cartella, e non rispetto allo stato passato del file...
    V+K

  10. #30
    Utente di HTML.it L'avatar di andbin
    Registrato dal
    Jan 2006
    residenza
    Italy
    Messaggi
    18,284
    Originariamente inviato da valer_85
    mi sono accorto ora che forse la cosa è + semplice di come hai fatto tu...
    xkè la modifica è da rilevare rispetta a un file che non cambia mai, contenuto in un'altra dir...
    ti ricordi l'inizio dell'esercizio? ci sono 2 cartelle: una che nn cambia mai di contenuto, e l'altra in cui possono essere cancellati / aggiunti /modificati dei file... inizialmente quindi il contenuto è lo stesso, poi le modifiche devono essere rilevate rispetto al file corrispondente nella prima cartella, e non rispetto allo stato passato del file...
    Ah beh, quindi tu ogni X secondi fai il diff di tutti i file nelle 2 cartelle??? Ottimo ... ecco come sprecare il tempo di CPU.

    Comunque $FCHECK non è il file vecchio ... è un file temporaneo lungo 0 byte che ha il solo scopo di "tenere" il modification time.
    Andrea, andbin.devSenior Java developerSCJP 5 (91%) • SCWCD 5 (94%)
    java.util.function Interfaces Cheat SheetJava Versions Cheat Sheet

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.