【发布时间】:2020-04-28 03:55:09
【问题描述】:
我可以使用md5 -r foo.txt > md5.txt 创建一个文本文件,文件的 md5 后跟一个空格,然后是该文件的本地路径.. 但是我将如何让这两个项目由 TAB 分隔角色?
作为参考和上下文,我使用的完整命令是
find . -type f -exec \
bash -c '
md=$(md5 -r "$0")
siz=$(wc -c <"$0")
echo -e "${md}\t${siz}"
' {} \; \
> listing.txt
请注意,md5 输出的 filepath 项也可能包含空格,例如 ./path to file/filename,这些不应转换为制表符。
【问题讨论】:
-
md5命令是什么?计算和 MD5 校验和的常用命令是md5sum(它没有-r选项)。你在使用openssl md5命令吗?我知道,如果您有一个名为md5的符号链接指向/usr/bin/openssl,它将计算和 MD5 校验和,但至少在我的系统上默认没有安装符号链接。 -
看来
md5在BSD上,md5sum在linux上,我刚刚在FreeBSD上测试过。很可能OP在Mac os上。 -
@Jetchisel:是
md5的openssl版本吗?如果是这样,md5可能是指向openssl的符号链接,md5 -help将显示大约 26 行信息,其中大部分与 MD5 校验和无关。 (这很重要,因为 GNU coreutilsmd5sum命令和 OpenSSLmd5命令的输出格式不同,这与这个问题非常相关。) -
@Erics 由于不是每个人都会使用相同的
md5命令,因此在您的问题中显示md5 -r somefile的确切输出会很有帮助。 -
@KeithThompson,在我的 FreeBSD 上它是一个可执行的 ELF b4bit,所以这里没有符号链接。同样在 BSD 的
-help或--help或-h上是一个错误。