j'ai quelques gros fichiers, et je souhaitais réduire leur taille en
conservant une signature unique pour les différencier. Une fonction
de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais
besoin de réduire le fichier et de le hacher, mais par morceau, i.e.
prendre le fichier par petit bout, faire un hash de chacun de ces morceaux,
et concaténer tous les hash. (pour donner une idée des ordres de
grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat
devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de
consommer beaucoup d'espace disque: le fichier est d'abord dupliqué
par le split, avant d'être hashé. Il n'existerait pas un moyen
de réunir les deux opérations? Apparement, la page de man de split
ne me propose rien de tel (un genre de -exec {} comme avec
find).
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Marc
Kevin Denis wrote:
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en conservant une signature unique pour les différencier. Une fonction de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais besoin de réduire le fichier et de le hacher, mais par morceau, i.e. prendre le fichier par petit bout, faire un hash de chacun de ces morceaux, et concaténer tous les hash. (pour donner une idée des ordres de grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de consommer beaucoup d'espace disque: le fichier est d'abord dupliqué par le split, avant d'être hashé. Il n'existerait pas un moyen de réunir les deux opérations? Apparement, la page de man de split ne me propose rien de tel (un genre de -exec {} comme avec find).
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande magique pour résoudre le problème.
Kevin Denis wrote:
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en
conservant une signature unique pour les différencier. Une fonction
de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais
besoin de réduire le fichier et de le hacher, mais par morceau, i.e.
prendre le fichier par petit bout, faire un hash de chacun de ces morceaux,
et concaténer tous les hash. (pour donner une idée des ordres de
grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat
devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de
consommer beaucoup d'espace disque: le fichier est d'abord dupliqué
par le split, avant d'être hashé. Il n'existerait pas un moyen
de réunir les deux opérations? Apparement, la page de man de split
ne me propose rien de tel (un genre de -exec {} comme avec
find).
J'utiliserais dd pour lire une section du fichier, et je piperais le
résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les
bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande
magique pour résoudre le problème.
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en conservant une signature unique pour les différencier. Une fonction de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais besoin de réduire le fichier et de le hacher, mais par morceau, i.e. prendre le fichier par petit bout, faire un hash de chacun de ces morceaux, et concaténer tous les hash. (pour donner une idée des ordres de grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de consommer beaucoup d'espace disque: le fichier est d'abord dupliqué par le split, avant d'être hashé. Il n'existerait pas un moyen de réunir les deux opérations? Apparement, la page de man de split ne me propose rien de tel (un genre de -exec {} comme avec find).
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande magique pour résoudre le problème.
Nicolas George
Marc , dans le message <iausp9$bm3$, a écrit :
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum
Attention à dd avec un pipe : si la taille de bloc n'est pas en phase avec les lectures ou écritures du process à l'autre bout du pipe, dd peut faire des blocs écourtés, et ne rattrapera pas les octets perdus.
Marc , dans le message <iausp9$bm3$1@news-rocq.inria.fr>, a écrit :
J'utiliserais dd pour lire une section du fichier, et je piperais le
résultat à sha256sum
Attention à dd avec un pipe : si la taille de bloc n'est pas en phase avec
les lectures ou écritures du process à l'autre bout du pipe, dd peut faire
des blocs écourtés, et ne rattrapera pas les octets perdus.
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum
Attention à dd avec un pipe : si la taille de bloc n'est pas en phase avec les lectures ou écritures du process à l'autre bout du pipe, dd peut faire des blocs écourtés, et ne rattrapera pas les octets perdus.
Kevin Denis
Le 04-11-2010, Marc a écrit :
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande magique pour résoudre le problème.
Effectivement. Avec dd, cela devient bien plus simple. -- Kevin
Le 04-11-2010, Marc <marc.glisse@gmail.com> a écrit :
J'utiliserais dd pour lire une section du fichier, et je piperais le
résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les
bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande
magique pour résoudre le problème.
Effectivement. Avec dd, cela devient bien plus simple.
--
Kevin
J'utiliserais dd pour lire une section du fichier, et je piperais le résultat à sha256sum, avec 3-4 lignes de script autour pour choisir les bons arguments à dd et boucler. Je ne pense pas qu'il y ait de commande magique pour résoudre le problème.
Effectivement. Avec dd, cela devient bien plus simple. -- Kevin
Stephane CHAZELAS
2010-11-04, 17:12(+00), Kevin Denis: [...]
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en conservant une signature unique pour les différencier. Une fonction de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais besoin de réduire le fichier et de le hacher, mais par morceau, i.e. prendre le fichier par petit bout, faire un hash de chacun de ces morceaux, et concaténer tous les hash. (pour donner une idée des ordres de grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de consommer beaucoup d'espace disque: le fichier est d'abord dupliqué par le split, avant d'être hashé. Il n'existerait pas un moyen de réunir les deux opérations? Apparement, la page de man de split ne me propose rien de tel (un genre de -exec {} comme avec find).
[...]
perl -ne 'BEGIN{$/485760}{open A, "|sha256sum"; print A $_; close A}'
-- Stephane
2010-11-04, 17:12(+00), Kevin Denis:
[...]
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en
conservant une signature unique pour les différencier. Une fonction
de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais
besoin de réduire le fichier et de le hacher, mais par morceau, i.e.
prendre le fichier par petit bout, faire un hash de chacun de ces morceaux,
et concaténer tous les hash. (pour donner une idée des ordres de
grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat
devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de
consommer beaucoup d'espace disque: le fichier est d'abord dupliqué
par le split, avant d'être hashé. Il n'existerait pas un moyen
de réunir les deux opérations? Apparement, la page de man de split
ne me propose rien de tel (un genre de -exec {} comme avec
find).
[...]
perl -ne 'BEGIN{$/=10485760}{open A, "|sha256sum"; print A $_; close A}'
j'ai quelques gros fichiers, et je souhaitais réduire leur taille en conservant une signature unique pour les différencier. Une fonction de hachage est donc la solution.
Pour quelques raisons trop longues à être évoquées ici, j'aurais besoin de réduire le fichier et de le hacher, mais par morceau, i.e. prendre le fichier par petit bout, faire un hash de chacun de ces morceaux, et concaténer tous les hash. (pour donner une idée des ordres de grandeurs, il s'agit de fichiers supérieurs au giga, et le résultat devrait être un suite de hash de quelques Mo).
J'utilise donc split, puis sha256sum. Mais ceci à le défaut de consommer beaucoup d'espace disque: le fichier est d'abord dupliqué par le split, avant d'être hashé. Il n'existerait pas un moyen de réunir les deux opérations? Apparement, la page de man de split ne me propose rien de tel (un genre de -exec {} comme avec find).
[...]
perl -ne 'BEGIN{$/485760}{open A, "|sha256sum"; print A $_; close A}'