GNU/Linux >> Znalost Linux >  >> Linux

Vygenerovat Md5sum pro všechny soubory v adresáři a pak napsat (filename).md5 pro každý soubor obsahující Md5sum daného souboru?

Mám adresář plný souborů. Každý soubor bude zkopírován do určitého typu cílového hostitele.

Chci vypočítat součet MD5 pro každý soubor v adresáři a uložit tento součet md5 do souboru, který odpovídá názvu souboru, který vygeneroval součet, ale s připojeným .md5.

Pokud mám například adresář s:

a.bin
b.bin
c.bin

Konečný výsledek by měl být:

a.bin
a.bin.md5     # a.bin's calculated checksum
b.bin
b.bin.md5     # b.bin's calculated checksum
c.bin
c.bin.md5     # c.bin's calculated checksum

Zkoušel jsem to pomocí find exec a xargs.

S find jsem zkusil tento příkaz:

find . -type f -exec md5sum {} + > {}.md5

Pomocí xargs jsem zkusil tento příkaz:

find . -type f | xargs -I {} md5sum {} > {}.md5

V obou případech skončím se souborem s názvem {}.txt, což ve skutečnosti není to, co hledám.

Mohl by někdo poukázat na to, jak je vyladit, aby se vygenerovaly soubory md5, které chci vygenerovat?

Přijatá odpověď:

cd /path/to/files &&
for file in *; do
    if [[ -f "$file" ]]; then
        md5sum -- "$file" > "${file}.md5"
    fi
done

Linux
  1. Odebrat všechny soubory/adresáře kromě jednoho souboru?

  2. Najít soubory, pro které existuje více variant tohoto názvu souboru společně ve stejném adresáři?

  3. Hledat v adresáři soubory a výsledek výstupu do textového souboru?

  1. Jak auditovat změny souborů a spouštění souborů v Linuxu

  2. Tabulka oprávnění pro soubor/adresář a typy uživatelů souborového systému

  3. Najděte soubor a poté cd do tohoto adresáře v Linuxu

  1. symbolický odkaz:najít všechny soubory, které odkazují na tento soubor

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

  3. Najděte všechny duplicitní soubory podle hash MD5