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 – Obecná podpora Linuxu pro Ipv6 Připraven?
Ssh – Potřebujete Tty ke spuštění sudo, pokud mohu sudo bez hesla?