Ok, das ist ein fairer Punkt. Aber wenn man dies als Lernübung für Linux cmd betrachtet, kann man das verbessern? Zum Beispiel habe ich ursprünglich mit -exec 'md5sum .....' angefangen, aber die Recherche ergab, dass xargs (mit google) xargs effizienter war.
Jamie Curran vor 12 Jahren
0
Wenn Sie neue Techniken erlernen möchten, schlage ich vor, nachzuschauen, wie diese Tools das Problem lösen, und Sie werden viele clevere Ideen erhalten (die Quelle, Luke, verwenden Sie die Quelle).
Paulo Scardine vor 12 Jahren
0
Siehe auch http://unix.stackexchange.com/a/71178/23542
artfulrobot vor 9 Jahren
0
3 Antworten auf die Frage
7
Olaf Dietsche
From "man xargs": -I implies -L 1 So this is not most efficient. It would be more efficient, if you just give as many filenames to md5sum as possible, which would be:
Then you won't have the file size of course. If you really need the file size, create a shell script, which does the md5sum and du -h and merge the lines with join.
0
robo
Manchmal arbeiten wir an reduzierten Linux-Befehlen, wie etwa busybox oder andere Dinge, die mit NAS und anderen in Linux eingebetteten Hardwares (IoTs) geliefert werden. In diesen Fällen können wir keine Optionen verwenden, wie beispielsweise -print0Probleme mit Namespaces. So können wir stattdessen bevorzugen:
find | while read file; do md5sum "$file"; done > /destination/file
Dann ist unser Unternehmen /destination/filefür jeden Prozess wie sortund uniqwie gewohnt bereit .
0
orange_juice6000
Verwenden Sie entweder btrfs + duperemove oder zfs mit Online-Deduplizierung. Es funktioniert auf Dateisystemebene und wird sogar mit gleichen Dateiformaten abgeglichen. Anschließend wird mit Hilfe des Dateisystems des Dateisystems nur einer von beiden beibehalten, während die Dateien an Ort und Stelle bleiben. Wenn Sie einen der freigegebenen Teile in einer der Dateien ändern, wird die Änderung separat geschrieben. Auf diese Weise können Sie Dinge wie / media und / backup / media-2017-01-01 nur die Größe jeder einzelnen Information in beiden Bäumen belegen.