На этот вопрос уже есть ответ здесь:
Я хочу перечислить (и сохранить) контрольную сумму Md5 всех файлов в каталоге и сохраните этот список в текстовом файле с именем md5sum.txt
, было бы также неплохо, если бы я мог
tree
(которая создает древовидную структуру папки и файлы) Вы могли использовать find
(в каталоге)
find -type f -exec md5sum '{}' \; > md5sum.txt
, Если Вы хотите исключить md5sum.txt
сам файл, можно сделать так:
find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt
можно также использовать цикл: включите рекурсивный globbing
shopt -s globstar
Затем в каталоге:
for i in **; do [[ -f "$i" ]] && md5sum "$i" >> md5sum.txt; done
можно исключить сам файл от этого также:
for i in **; do
[[ -f "$i" ]] &&
[[ md5sum.txt != "$i" ]] &&
md5sum "$i" >> md5sum.txt
done
Ни один из этих продуктов tree
- как структура. Но они действительно печатают относительный путь в файл от начального каталога. Если Вы хотите полный путь, используйте find /path/to/directory ...
, Вы могли бы хотеть выключить globstar впоследствии (shopt -u globstar
)
Можно выполнить следующую команду:
md5sum /path/to/directory/* > /path_to_result/md5sum.txt
вывод в файле результата будет чем-то как этот:
46684e3891d990acde2e723ee3d4e94a /var/log/alternatives.log
39cf1ebf93452ed5f8b240b35ae73f9f /var/log/alternatives.log.1
aa6c09c411d1d0870bca5f401d589332 /var/log/alternatives.log.2.gz