Jam*_*ran 7 linux sorting md5sum
我正在尝试查找所有重复文件(基于 MD5 哈希)并按文件大小排序。到目前为止,我有这个:
find . -type f -print0 | xargs -0 -I "{}" sh -c 'md5sum "{}" | cut -f1 -d " " | tr "\n" " "; du -h "{}"' | sort -h -k2 -r | uniq -w32 --all-repeated=separate
Run Code Online (Sandbox Code Playgroud)
这个的输出是:
1832348bb0c3b0b8a637a3eaf13d9f22 4.0K ./picture.sh
1832348bb0c3b0b8a637a3eaf13d9f22 4.0K ./picture2.sh
1832348bb0c3b0b8a637a3eaf13d9f22 4.0K ./picture2.s
d41d8cd98f00b204e9800998ecf8427e 0 ./test(1).log
Run Code Online (Sandbox Code Playgroud)
这是最有效的方法吗?
来自“man xargs”: -I 暗示 -L 1 所以这不是最有效的。如果您只为 md5sum 提供尽可能多的文件名,则效率会更高,这将是:
find . -type f -print0 | xargs -0 md5sum | sort | uniq -w32 --all-repeated=separate
Run Code Online (Sandbox Code Playgroud)
那么你当然不会有文件大小。如果你真的需要的文件大小,创建一个shell脚本,它执行md5sum
和du -h
并合并与线join
。
归档时间: |
|
查看次数: |
8655 次 |
最近记录: |