GNU/Linux >> Linux Esercitazione >  >> Linux

Come confrontare le differenze tra le directory (linux)

Soluzione 1:

Dalla pagina man diff:

Se sia from-file che to-file sono directory, diff confronta i file corrispondenti in entrambe le directory, in ordine alfabetico; questo confronto non è ricorsivo a meno che non venga fornita l'opzione -r o --recursive.diff non confronta mai il contenuto effettivo di una directory come se fosse un file. Il file completamente specificato potrebbe non essere lo standard input, perché lo standard input è senza nome e la nozione di "file con lo stesso nome" non si applica.

Quindi, per confrontare le directory:diff --brief -r dir1 dir2

Per confrontare i file fianco a fianco:diff --side-by-side file1 file2

Soluzione 2:

Supponendo:

  • siamo al www1 , confrontando con www2 remoto
  • è configurata l'autenticazione con chiave ssh pubblica dal www1 locale al www2 remoto
  • confrontiamo come lo stesso utente su www1 locale e www2 remoto
find /var/www/html/ -name "*" -exec md5sum -b {} \; | grep -v "/var/www/html/exclude_this dir" > local.md5
ssh www2 "find /var/www/html/ -name '*' -exec md5sum -b {} \; | grep -v /var/www/html/exclude_this dir > remote.md5"
scp www2:remote.md5 .
diff local.md5 remote.md5 

Soluzione 3:

Vuoi davvero combinare la potenza di rsync per ridurre il consumo di larghezza di banda con la potenza di diff per darti flessibilità, beh, um differenze.

Quindi qualcosa del genere:

cp -R $local $bak
rsync $server:$remdir/* $local/
rsync $local/ $server:$remdir/* 
diff -wur $local $bak

Immagino che potresti modificarlo un po' se lo facessi spesso usando rsync invece di cp nella prima riga - ovviamente nell'ultima riga hai tutta la potenza di diff per formattarlo come preferisci. Probabilmente con y nel caso dei PO

Lo svantaggio di questo approccio è che finisci per utilizzare il doppio dello spazio locale, ma a meno di $ 1/gig che importa?


Linux
  1. Come sincronizzare directory locali e remote in Linux

  2. Come montare la condivisione Windows remota su Linux

  3. Come rinominare una directory su Linux

  4. Come aggiungere una connessione MySQL remota in Linux?

  5. Come eseguire il looping delle directory in Linux?

Come rinominare le directory in Linux

Come confrontare le directory con Meld su Linux

Come navigare nelle directory più velocemente in Linux

Come confrontare i file in Linux usando lo strumento Meld (Diff/Merge).

Come confrontare due file nel terminale Linux

Come elencare solo le directory in Linux