рекурсивная генерация контрольной суммы md5 и печать ее в текстовом файле с md5, путем и размером файла - PullRequest
0 голосов
/ 30 января 2020

Я изучаю bash скрипт оболочки, и я дал задачу рекурсивно извлечь файлы в подкаталогах, выполнить контрольную сумму md5, отобразить размер файла и вывести его в виде текстового файла построчно.

например

  • 662c1e24227048e50ae8e9c62b8a60da yolo / happy / README.txt 20 КБ
  • c2b1cd01a4595c134bca9502f35107de * яблоко / манго / бат / 100 * шар * 100 / bb / 100 * ball * 100 * 100 * k * 100 * k9 * 100 * ball * 100 * k9 * 100 * ball * 100 * k9 * 100 * ball * 100 * k9 * 100 * ball * 100 * k * 8 * * * * * * * * * * * * * 100 * ball * 100 * ball * 100 * 100 * k * * * * * * * * * * * * * * *

    для рекурсии я использую

    find / home / kat / sam -type f -print0 | xargs -0 md5sum> /home/kat/tempmd5new.txt

    =======, который дает мне вывод
    662c1e24227048e50ae8e9c62b8a60da yolo / happy / README.txt
    c2b950d1011 /ball/apt.txt

    Основная проблема в том, что я должен использовать команду find.
    Заранее спасибо.

1 Ответ

1 голос
/ 30 января 2020

Выполняется md5sum вместе с wc -c, который получает число байтов, сохраняет результаты в переменные и объединяет их в одной эхо-печати для каждого файла:

find your/path -type f -exec bash -c 'md=$(md5sum "$0"); siz=$(wc -c <"$0"); echo ${md} ${siz}b' {} \;
...