Linux: вычислить единственный хеш для данной папки и содержания?

В вашем маршруте вы ожидаете, что параметр facebookUserId будет параметром маршрута (например, / api / users / 10213594301678639), но в приведенном выше примере вы вызываете маршрут с параметром запроса (/ api / пользователи? facebookUserId = 10213594301678639)

75
задан kvantour 19 December 2018 в 17:11
поделиться

7 ответов

Один возможный путь был бы:

sha1sum path/to/folder/* | sha1sum

, Если существует целое дерево каталогов, Вы - вероятно, более обеспеченное использование, находят и xargs. Одна возможная команда была бы

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

И, наконец, если также необходимо принять во внимание полномочия и пустые каталоги:

(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

аргументы stat заставят это печатать название файла, сопровождаемого его восьмеричными полномочиями. Эти две находки будут работать один за другим, вызывая дважды сумму диска IO, первое нахождение всех имен файлов и вычисления контрольной суммы содержание, второе нахождение всех имен файлов и имен каталогов, печатая имя и режим. Список "имен файлов и контрольных сумм", сопровождаемый "именами и каталогами, с полномочиями" затем будет проверено суммированием, для меньшей контрольной суммы.

97
ответ дан Nicholas Pipitone 24 November 2019 в 11:36
поделиться

Вы могли sha1sum для генерации списка значений хэш-функции и затем sha1sum, что список снова, он зависит от того, что точно это - Вы, хотят выполнить.

0
ответ дан Ronny Vindenes 24 November 2019 в 11:36
поделиться

Попытайтесь сделать его на двух шагах:

  1. создают файл с хешами для всех файлов в папке
  2. хеш этот файл

Как так:

# for FILE in `find /folder/of/stuff -type f | sort`; do sha1sum $FILE >> hashes; done
# sha1sum hashes

Или делают все это сразу:

# cat `find /folder/of/stuff -type f | sort` | sha1sum
1
ответ дан Joao da Silva 24 November 2019 в 11:36
поделиться

Я передал бы результаты по каналу для отдельных файлов до sort (для предотвращения простого переупорядочения файлов для изменения хеша) в md5sum или sha1sum, какой бы ни Вы выбираете.

1
ответ дан Rafał Dowgird 24 November 2019 в 11:36
поделиться

Если Вы просто хотите хешировать содержание файлов, игнорируя имена файлов затем можно использовать

cat $FILES | md5sum

, Удостоверяются, что у Вас есть файлы в том же порядке при вычислениях хеша:

cat $(echo $FILES | sort) | md5sum

, Но у Вас не может быть каталогов в Вашем списке файлов.

3
ответ дан 24 November 2019 в 11:36
поделиться

Можно сделать tar -c /path/to/folder | sha1sum

11
ответ дан davidtbernal 24 November 2019 в 11:36
поделиться
  • Использование инструмент обнаружения проникновения файловой системы как помощник .

  • хешируют шар tar каталога:

    tar cvf - /path/to/folder | sha1sum

  • Код что-то самостоятельно, как острота vatine :

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

22
ответ дан Michael Mior 24 November 2019 в 11:36
поделиться
Другие вопросы по тегам:

Похожие вопросы: