从 md5 输出中删除完整路径
Removing full path from md5 output
默认情况下,md5 命令在输出中包含完整路径,并且似乎没有仅输出基本名称的选项。虽然我可以使用脚本来解决这个问题,但我想知道是否有一种简单的方法可以使用单个命令在没有完整路径的情况下输出。它不一定是 md5,因为我的目的只是验证存储在我自己网络中不同机器上的文件没有损坏。当我对具有不同路径的文件列表进行简单比较时,我只需要避免混淆水域的路径。
目前我正在使用
find -s directoryToBeChecked -type f -exec md5 {} \; > checksumsForComparison.txt
创建成对的文件,并希望使用 FileMerge 等图形差异程序手动检查它们。
我使用的是 MacOS 10.14,所以 shell 是 sh 3.2
尝试打开一个 shell,命令参数回显 basename
和 md5
(使用 -q
标志,因此只打印散列)。
find -s directoryToBeChecked -type f -exec sh -c 'echo "$(basename "[=10=]") $(md5 -q "[=10=]")"' {} \; > checksumsForComparison.txt
默认情况下,md5 命令在输出中包含完整路径,并且似乎没有仅输出基本名称的选项。虽然我可以使用脚本来解决这个问题,但我想知道是否有一种简单的方法可以使用单个命令在没有完整路径的情况下输出。它不一定是 md5,因为我的目的只是验证存储在我自己网络中不同机器上的文件没有损坏。当我对具有不同路径的文件列表进行简单比较时,我只需要避免混淆水域的路径。
目前我正在使用
find -s directoryToBeChecked -type f -exec md5 {} \; > checksumsForComparison.txt
创建成对的文件,并希望使用 FileMerge 等图形差异程序手动检查它们。
我使用的是 MacOS 10.14,所以 shell 是 sh 3.2
尝试打开一个 shell,命令参数回显 basename
和 md5
(使用 -q
标志,因此只打印散列)。
find -s directoryToBeChecked -type f -exec sh -c 'echo "$(basename "[=10=]") $(md5 -q "[=10=]")"' {} \; > checksumsForComparison.txt