Je souhaite répertorier (et enregistrer) la somme de contrôle Md5 de tous les fichiers d'un répertoire et enregistrer cette liste dans un fichier texte appelé md5sum.txt
ce serait aussi bien si je pouvais
tree
(qui crée une arborescence de dossiers et de fichiers)Vous pouvez utiliser find
(dans le répertoire)
find -type f -exec md5sum '{}' \; > md5sum.txt
Si vous souhaitez exclure le fichier md5sum.txt
lui-même, vous pouvez le faire:
find -type f \( -not -name "md5sum.txt" \) -exec md5sum '{}' \; > md5sum.txt
Vous pouvez également utiliser une boucle: activer la lecture récursive
shopt -s globstar
Ensuite, dans le répertoire:
for i in **; do [[ -f "$i" ]] && md5sum "$i" >> md5sum.txt; done
Vous pouvez également exclure le fichier de celui-ci:
for i in **; do
[[ -f "$i" ]] &&
[[ md5sum.txt != "$i" ]] &&
md5sum "$i" >> md5sum.txt
done
Aucune de celles-ci ne produit une structure de type tree
-. Mais ils affichent le chemin relatif du fichier à partir du répertoire de départ. Si vous voulez le chemin absolu, utilisez find /path/to/directory ...
Vous voudrez peut-être désactiver globstar après (shopt -u globstar
)
Vous pouvez exécuter la commande suivante:
md5sum /path/to/directory/* > /path_to_result/md5sum.txt
La sortie dans le fichier de résultat ressemblera à ceci:
46684e3891d990acde2e723ee3d4e94a /var/log/alternatives.log
39cf1ebf93452ed5f8b240b35ae73f9f /var/log/alternatives.log.1
aa6c09c411d1d0870bca5f401d589332 /var/log/alternatives.log.2.gz