Strumento di confronto file e directory?

142

Sto cercando qualcosa che possa confrontare directory e file come Beyond Compare per Windows.

È principalmente per l'uso del controllo del codice sorgente, ma ho bisogno di usarlo anche per la distribuzione.

    
posta DevelopingChris 10.11.2010 - 13:15

19 risposte

169

Combina

Meld è uno strumento in grado di confrontare e unire file e directory. È una GUI analogica allo standard diff e patch comando strumenti di linea. (Vedi man diff e man patch per maggiori dettagli su quelli)

Inoltre, molti sistemi di controllo del codice sorgente (come bzr o git ) hanno la possibilità di creare differenze tra le versioni.

    
risposta data dv3500ea 10.11.2010 - 13:28
42

Diff è tuo amico.

diff -ur path1 path2

Questo confronta tutti i file che sono comuni tra path1 e path2.

Se cambi -ur in -urN allora questo mostrerà anche il contenuto dei file che sono presenti solo in uno dei percorsi.

    
risposta data Richm 04.10.2011 - 19:43
21

'Beyond Compare' è disponibile anche per Linux.

Controlla l'URL di download: link

    
risposta data aneeshep 10.11.2010 - 13:23
13

Utilizza il comando diff :

diff -u file1 file2

diff -u seleziona un formato con poche righe di contesto. Un semplice diff file1 file2 elenca solo le linee differenti. Ci sono molte altre opzioni per controllare il formato di output, ignorare le differenze solo per lo spazio bianco, ecc.

Se vuoi scrivere l'output su un file, ridirilo:

diff -u file1 file2 >file1-file2.diff
    
risposta data Gilles 07.10.2013 - 22:05
12

Gnome Commander

L'interfaccia potrebbe non essere molto sexy, ma è estremamente potente!

E se fossi abituato ad un altro * Commander (come Norton o simili), non ti perderai.

    
risposta data Huygens 10.11.2010 - 14:09
9

Strumenti da riga di comando

Ispirato da questo post di blog .

diff

Elenco di file diversi:

diff -qr folder1 folder2

Elenco contenuto anche:

diff -Naur folder1 folder2

rsync

Se le due directory non si trovano sullo stesso computer, rsync potrebbe essere la soluzione più semplice. Di solito viene utilizzato rsync per sincronizzare le directory, ma puoi eseguirlo in modalità dettagliata e asciutta, quindi elencherà solo i file che dovrà modificare.

rsync -rvnc --delete folder1 server:/path/to/folder2

Puoi omettere c se vuoi confrontare i file in base a data / ora e dimensioni dei file per velocizzare tutto:

rsync -rvn --delete folder1 server:/path/to/folder2
    
risposta data lumbric 25.12.2011 - 20:22
9

Krusader

Krusader è uno strumento gratuito (disponibile nel Software Center) che mostra i contenuti delle cartelle in confronto e puoi sincronizzarti con molte opzioni diverse. Puoi filtrare durante la sincronizzazione e il confronto.

Per confrontare i contenuti dei file, contrassegna semplicemente due file, seleziona "file" & gt; "confronta i contenuti" e vengono confrontati lettera per lettera. lo strumento di confronto predefinito usato da krusader è lo strumento predefinito di KDE " Kompare ". Puoi impostare krusader per utilizzare qualsiasi altro strumento di confronto, ad esempio uno dei precedenti.

Questa è la soluzione più completa che abbia mai trovato ed è molto comoda. E supporta tutte le funzioni keybindung usate da midnight commander (norton commander syntax).

    
risposta data piedro 10.11.2010 - 19:39
9

KDiff3

È un front-end grafico a diff per gli utenti di KDE (o se non ti dispiace usare app Qt).

C'è anche dirdiff per le directory.

    
risposta data tinhed 10.11.2010 - 13:59
6

Forse la fusione è ciò che stai cercando. Oppure qui sono alcune altre alternative.

    
risposta data sagarchalise 10.11.2010 - 13:23
4

Unison è uno strumento di sincronizzazione file veloce che utilizza l'algoritmo rsync e ti consente di visualizzare le differenze in anteprima prima di aggiornare tra 2 posizioni, siano esse remote o locali.

    
risposta data Rog 18.01.2011 - 03:29
4

Ho saputo di hashdeep due settimane fa. E ha alcuni forti vantaggi:

  • Diversamente da meld , funziona bene per le cartelle di grandi dimensioni. Dove meld diventa estremamente lento e l'interfaccia utente non risponde (bloccata), hashdeep funziona a velocità costante
  • A differenza di rsync , hashdeep rileva i file spostati, ovvero file con lo stesso contenuto, solo in una directory diversa.

L'output dettagliato è come:

...
foo/bar.txt: Known file not used
x/foo/M0824_2L.JPG: Moved from y/P1010998.JPG

hashdeep: Audit failed
   Input files examined: 0
  Known files expecting: 0
          Files matched: 6233
Files partially matched: 0
            Files moved: 3695
        New files found: 19257
  Known files not found: 4713
    
risposta data geekQ 07.05.2013 - 13:50
3

Prova anche FreeFileSync . Ha un'interfaccia decente, una velocità di confronto accettabile, un buon filtraggio del risultato del confronto, diversi modi di sincronizzazione. Viene fornito con uno strumento di monitoraggio delle cartelle (RealTimeSync) in grado di avviare FreeFileSync (in realtà qualsiasi comando o script) quando viene modificata la cartella specifica (o le cartelle) o i file all'interno. Vale davvero la pena provare.

Maggiori informazioni a riguardo qui o qui , dove hai PPA , anche

Dalla loro pagina, le caratteristiche principali:

  

Confronta i file (byte o per data) e sincronizzali.

     

Nessuna limitazione: è possibile sincronizzare un numero arbitrario di file.

     

Supporto Unicode.

     

Supporto di rete.

     

Supporto integrato per nomi di file molto lunghi (più di MAX_PATH = 260 caratteri).

     

Database di sincronizzazione per la propagazione di file eliminati e rilevamento di conflitti

     

Supporto per più coppie di cartelle con configurazione distinta      

Supporto completo per collegamenti simbolici Windows / Linux e punti di congiunzione Windows.

     

Lean & amp; interfaccia utente facilmente accessibile: altamente ottimizzata per la velocità e enormi set di dati.

     

Algoritmi codificati in C ++ completamente.

     

Tutti gli indicatori di avanzamento ottimizzati per le massime prestazioni!

     

Crea processi batch per la sincronizzazione automatica con o senza GUI.

     

Concentrati sull'usabilità:

     
    
      
        

Solo funzionalità necessarie sull'interfaccia utente: nessun menu sovraccarico o giungla di icone.

                 

Seleziona tutte le cartelle tramite drag & amp; cadere.

                 

L'ultima configurazione utilizzata e le impostazioni dello schermo vengono salvate automaticamente.

                 

Gestisci e carica diverse configurazioni con il drag & amp; rilascia, carica pulsante o riga di comando.

                 

Fai doppio clic per avviare l'applicazione esterna (ad esempio mostra il file in Esplora risorse)

                 

Copia e amp; incolla tutti i dati della griglia come testo

                 

Elimina i file superflui / temporanei direttamente sulla griglia principale.

                 

Fai clic con il pulsante destro del menu di scelta rapida.

                 

Informazioni complete sullo stato e segnalazione degli errori

                 

Ordina gli elenchi di file per nome, dimensione o data.

      
    
  
     

Supporto per file di dimensioni superiori a 4 GB.

     

Opzione per spostare i file nel Cestino anziché eliminarli / sovrascriverli.

     

Ignora le directory "\ RECYCLER" e "\ System Volume Information" con il filtro predefinito. (Solo Windows)

     

Versioni localizzate sono disponibili per molte lingue.

     

Elimina prima della copia: evita penuria di spazio su disco per lavori di sincronizzazione di grandi dimensioni.

     

Filtra la funzionalità per includere / escludere i file dalla sincronizzazione (senza richiedere un nuovo confronto!).

     

Include / esclude temporaneamente file specifici dalla sincronizzazione.

     

Gestisce automaticamente le modifiche all'ora legale sui volumi FAT / FAT32.

     

Versione portatile disponibile (selezionabile tramite installer).

     

Versione nativa a 64 bit.

     

Controlla automaticamente gli aggiornamenti da FreeFileSync.

     

Copia i file bloccati usando il servizio Copia Shadow del volume di Windows. (Solo Windows)

     

Crea backup regolari con macro% time%,% date% all'interno dei nomi di directory

     

Copia i tempi di creazione / accesso / modifica di file e cartelle durante la sincronizzazione

     

Strategia di blocco avanzata per consentire più processi di sincronizzazione (ad esempio più autori, stessa condivisione di rete)

Aggiungo che posso gestire i file cancellati, spostarli nel cestino o una cartella specificata dall'utente. Indicare uno svantaggio: la documentazione del programma si concentra un po 'su Windows, meno su Linux. Ma funziona bene.

    
risposta data luri 18.01.2011 - 02:18
3

Puoi usare diffuse:

sudo apt-get install diffuse
diffuse file1 file2
    
risposta data metdos 18.12.2012 - 09:50
3

Un buon modo per fare questo confronto è usare " trova " con " md5sum ", quindi un " diff ".

Esempio:

Usa find per elencare tutti i file nella directory, quindi calcola l'hash md5 per ogni file e collegalo a un file:

$find /dir1/ -type f -exec md5sum {} \; > dir1.txt

Fai la stessa procedura per un'altra directory:

$find /dir2/ -type f -exec md5sum {} \; > dir2.txt

Quindi confronta i risultati con due file con "diff":

$diff dir1.txt dir2.txt

Questa strategia è molto utile quando le due directory da confrontare non sono nella stessa macchina e devi assicurarti che i file siano uguali in entrambe le directory.

Un altro buon metodo per eseguire il lavoro è utilizzare git

git diff --no-index dir1/ dir2/

Cordiali saluti!

    
risposta data Adail Junior 09.01.2017 - 21:09
2

Puoi provare combinare .

Sono i repository e fornisce una GUI per il confronto di file o cartelle.

    
risposta data Pavlos G. 04.10.2011 - 18:58
1

L'IDE di Eclipse è un po 'pesante se si fanno solo paragoni, ma tra le altre cose fa un buon lavoro. È possibile selezionare 2 progetti, percorsi o file e confrontarli tra loro e sincronizzarsi con i server di controllo del codice sorgente.

    
risposta data Rog 18.01.2011 - 03:25
1

IMHO FreeFileSync è molto buono e più utile di Meld. È veloce e stabile, può eseguire sincronizzazioni costolabili e può anche esportare il risultato del confronto in un file CSV.

link Lanchpad

    
risposta data Reza 20.01.2014 - 13:53
0

Cross-platform, facile, senza complicazioni e amp; le funzioni di salvataggio dei profili rendono Jfilesync la mia prima scelta     

risposta data nightcrawler 23.07.2014 - 21:51
0

Per confrontare i file

File_1.txt
Line1
Line2

File_2.txt
Line1
Line 2

Puoi utilizzare il comando cmp :

cmp -b "File_1.txt" "File_2.txt"

l'output sarebbe

a b differ: byte 11, line 2 is  62 2  40  

Per confrontare le directory (le tue necessità):

puoi utilizzare il comando diff :

diff -r --brief dir1 dir2

man diff

  -r, --recursive
              recursively compare any subdirectories found

   -q, --brief
          report only when files differ
    
risposta data Maythux 17.06.2015 - 13:05

Leggi altre domande sui tag