md5 récursif

md5 récursif - Logiciels - Linux et OS Alternatifs

Marsh Posté le 09-09-2003 à 00:19:25    

j'ai besoin de m'assurer qu'un dossier et tout son contenu y compris tous les sous-dossier sont identiques entre une machine Linux et une machine Windows
or md5sum n'a pas d'option de récursivité
et pas de tar, vu la taille du truc
c'est possible ?


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 09-09-2003 à 00:19:25   

Reply

Marsh Posté le 09-09-2003 à 00:42:01    

ce qui veut dire que j'ai plus qu'à mettre Cygwin sur la machine windows pour pouvoir exécuter ça ;)
merci :)


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 09-09-2003 à 01:32:29    

j'ai pas samba sur la linuxbox
voir mon bug avec apt :D
et surtout de toute façon, je devrais installer cygwin à un moment ou à un autre alors...


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 09-09-2003 à 03:33:48    

Sonata:/mnt/apps# for file in `ls -R Stockage/` do; md5sum $file >> gnu; done
bash: syntax error near unexpected token `md5sum'
Sonata:/mnt/apps#


 
si je mets le ; avant le do ça bug plus, mais reste un pb: ls retourne le nom "tout bête", genre foo.jpg sans les sub genre /images/foo.jpg, du coup, md5sum proteste d'un file not found :/
donc ça merde


---------------
« Le verbe "aimer" est le plus compliqué de la langue. Son passé n'est jamais simple, son présent n'est qu'imparfait et son futur toujours conditionnel. » Jean Cocteau
Reply

Marsh Posté le 09-09-2003 à 12:03:09    

Pour effectuer des opérations récursives, il est préférable d'utiliser "find -print0" (le "-print0" qui est souvent oublié permet de traiter correctement les fichiers dont le nom comporte un saut de ligne) :
 

Code :
  1. find . -type f -print0 | xargs -0 md5sum > toto.md5


 
Avec un montage samba, tu pourrais faire un bête "diff -r rep1 rep2" pour comparer récursivement les deux répertoires.

Reply

Marsh Posté le 09-09-2003 à 13:01:46    

ArSuniK a écrit :

Pour effectuer des opérations récursives, il est préférable d'utiliser "find -print0" (le "-print0" qui est souvent oublié permet de traiter correctement les fichiers dont le nom comporte un saut de ligne) :
 

Code :
  1. find . -type f -print0 | xargs -0 md5sum > toto.md5


 
Avec un montage samba, tu pourrais faire un bête "diff -r rep1 rep2" pour comparer récursivement les deux répertoires.
 


 
 :non:  
 

Code :
  1. find . -type f -print0 | xargs -0 md5sum >> toto.md5

Reply

Marsh Posté le 09-09-2003 à 14:43:45    

HNO3 a écrit :


 
 :non:  
 

Code :
  1. find . -type f -print0 | xargs -0 md5sum >> toto.md5




 
:sweat:
C'est bash qui redirige la sortie standard dans le fichier 'toto.md5' (et pas md5sum ni xargs). Donc même si plusieurs md5sum sont lancés (si la liste d'argument est trop longue, xargs la découpe en plusieurs parties) tout sera envoyé linéairement dans le fichier toto.md5 (comme sur la sortie standard) et on peut mettre un seul ">", la seule différence étant que le fichier toto.md5 sera écrasé s'il existe.
Je te conseille la lecture d'un bon livre sur bash (ou autre shell).

Reply

Marsh Posté le 09-09-2003 à 21:38:19    

ArSuniK a écrit :


 
:sweat:
C'est bash qui redirige la sortie standard dans le fichier 'toto.md5' (et pas md5sum ni xargs). Donc même si plusieurs md5sum sont lancés (si la liste d'argument est trop longue, xargs la découpe en plusieurs parties) tout sera envoyé linéairement dans le fichier toto.md5 (comme sur la sortie standard) et on peut mettre un seul ">", la seule différence étant que le fichier toto.md5 sera écrasé s'il existe.
Je te conseille la lecture d'un bon livre sur bash (ou autre shell).
 


 
 :lol:  
 
Autant pour moi, j'avais pensé comme une boucle, mais tu as entierement raison !
(Mais de la a me dire d'aller lire un livre sur la programmation bash/shell...  :whistle: )

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed