GNU/Linux >> Znalost Linux >  >> Linux

Jak porovnat rozdíly mezi adresáři (linux)

Řešení 1:

Z manuálové stránky rozdílů:

Pokud jsou ze souboru i do souboru adresáře, porovnává diff odpovídající soubory v obou adresářích v abecedním pořadí; toto porovnání není rekurzivní, pokud není zadána volba -r nebo --recursive.diff nikdy neporovnává skutečný obsah adresáře, jako by to byl soubor. Soubor, který je plně specifikován, nemusí být standardním vstupem, protože standardní vstup je bezejmenný a pojem ‚‚soubor se stejným názvem‘‘ neplatí.

Takže pro porovnání adresářů:diff --brief -r dir1 dir2

Chcete-li porovnat soubory vedle sebe:diff --side-by-side file1 file2

Řešení 2:

Za předpokladu:

  • jsme na www1 , ve srovnání se vzdáleným www2
  • je nakonfigurované ověřování veřejným ssh klíčem z místního www1 na vzdálený www2
  • porovnáváme jako stejný uživatel na místním www1 a vzdálený www2
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 

Řešení 3:

Opravdu chcete spojit sílu rsync snížit spotřebu šířky pásma s výkonem diff abychom vám poskytli flexibilní, no ehm rozdíly.

Takže něco takového:

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

Myslím, že byste to mohli trochu vylepšit, pokud byste to často dělali pomocí rsync místo cp v prvním řádku - zjevně v posledním řádku máte plnou moc diff naformátujte jej, jak chcete. Pravděpodobně s y v případě OPs

Nevýhodou tohoto přístupu je, že nakonec využijete dvakrát více místního prostoru, ale za méně než 1 $/gig, koho to zajímá?


Linux
  1. Jak synchronizovat místní a vzdálené adresáře v Linuxu

  2. Jak přejmenovat adresář v Linuxu

  3. Jak smyčkovat adresáře v Linuxu?

  1. Jak rekurzivně vypsat adresáře v C na Linuxu?

  2. Jak získat rozdíl (pouze doplňky) mezi dvěma soubory v linuxu

  3. Jak porovnávat adresáře přes ssh

  1. Jak přesouvat adresáře v Linuxu

  2. Jak připojit vzdálené sdílení Windows v systému Linux

  3. Jak přidat vzdálené připojení MySQL v linuxu?