GNU/Linux >> Znalost Linux >  >> Linux

Linux:Porovnejte strukturu adresářů bez porovnávání souborů

Následující (pokud nahradíte první adresář za adresář1 a druhý za adresář2) by mělo udělat to, co hledáte, a to rychle:

find directory1 -type d -printf "%P\n" | sort > file1
find directory2 -type d -printf "%P\n" | sort | diff - file1

Základním principem je, že vytiskne všechny adresáře včetně cest podadresářů vzhledem k základním adresářům adresářeN.

To by mohlo spadnout (produkovat divný výstup), pokud máte návrat vozíku v některých názvech adresářů, ale ne v jiných.


vimdiff <(cd dir1; find . | sort) <(cd dir2; find . | sort)

vám poskytne pěkné zobrazení dvou hierarchií adresářů vedle sebe se složenými běžnými sekcemi.


Obvykle používám rsync pro tento úkol:

rsync -nav --delete DIR1/ DIR2

BUĎTE VELMI OPATRNÍ vždy použít -n , neboli --dry-run , nebo synchronizuje (změní obsah) adresářů.

To porovná soubory na základě časů a velikostí úprav souborů... myslím to je to, co opravdu chceš, nebo ti to alespoň nevadí? Mám pocit, že jen chcete, aby to proběhlo rychleji , ne že jej potřebujete k ignorování rozdílu mezi obsahem souboru. Pokud chcete, aby nevypisoval různé soubory se stejnými názvy, myslím, že přidání --ignore-existing možnost to udělá.

Také si uvědomte, že nevkládání / na konci DIR1 způsobí, že porovná adresář DIR1 s obsahem z DIR2 .

Výstup je nakonec trochu podrobný, ale ukáže vám, které soubory/adresáře se liší. Soubory/adresáře přítomné v DIR2 a ne v DIR1 bude uvozeno slovo deleting .

V některých situacích může být vhodnější odpověď @slartibartfast, i když budete muset odstranit -type d možnost povolit výpis souborů, které nejsou v adresáři. rsync bude rychlejší, pokud máte k porovnání značné množství souborů/adresářů.


Linux
  1. Přesouvání souborů na Linuxu bez mv

  2. linuxový příkaz k vyprázdnění všech souborů v adresáři

  3. Zkopírujte strukturu složek nejvyšší úrovně bez kopírování souborů v linuxu

  1. Jak extrahovat soubory Tar do konkrétního nebo jiného adresáře v Linuxu

  2. Linux – Jak lze zkontrolovat informace o struktuře adresářů souboru Unix/linux?

  3. Odstraňte pouze soubory v adresáři v adresářích linux NOT

  1. Maximální počet souborů/adresářů na Linuxu?

  2. Jak nejlépe porovnat obrovské adresářové stromy

  3. Jak porovnám binární soubory v Linuxu?