GNU/Linux >> Znalost Linux >  >> Linux

Linux:vypočítat jeden hash pro danou složku a obsah?

Jeden možný způsob by byl:

sha1sum path/to/folder/* | sha1sum

Pokud existuje celý adresářový strom, pravděpodobně bude lepší použít find a xargs. Jeden možný příkaz by byl

find path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum

A konečně, pokud také potřebujete vzít v úvahu oprávnění a prázdné adresáře:

(find path/to/folder -type f -print0  | sort -z | xargs -0 sha1sum;
 find path/to/folder \( -type f -o -type d \) -print0 | sort -z | \
   xargs -0 stat -c '%n %a') \
| sha1sum

Argumenty pro stat způsobí, že vytiskne název souboru následovaný osmičkovými oprávněními. Tato dvě hledání poběží jedno po druhém, což způsobí dvojnásobné množství IO disku, první najde všechny názvy souborů a provede kontrolní součet obsahu, druhé vyhledá všechny názvy souborů a adresářů, název tisku a režim. Seznam "názvů souborů a kontrolních součtů" následovaný "jmény a adresáři s oprávněními" bude poté kontrolní součet pro menší kontrolní součet.


  • Použijte nástroj pro detekci narušení souborového systému, jako je asistent.

  • hash tar ball z adresáře:

    tar cvf - /path/to/folder | sha1sum

  • Sami si něco nakódujte, například vatine's oneliner:

    find /path/to/folder -type f -print0 | sort -z | xargs -0 sha1sum | sha1sum


Linux
  1. Linux – Omezit využití paměti pro jeden linuxový proces?

  2. Zkontrolujte limit otevřeného FD pro daný proces v Linuxu

  3. Omezte využití paměti pro jeden proces Linuxu

  1. Správa uživatelského hesla pro linux v puppetu

  2. rozdíl kopírovat obsah složky mezi /. a /* v linuxu

  3. Jak nastavit oprávnění linux pro složku WWW?

  1. Příkazy FreeDOS pro fanoušky Linuxu

  2. linux ukazuje velikost obsahu složky v ls nebo nějakém jiném příkazu

  3. Příkaz Linux pro zobrazení obsahu daného souboru bajt po byte se znakem a jeho číselným vyjádřením zobrazeným pro každý bajt