以bash递归扫描目录

sor*_*h-r 0 linux bash

我需要编写一个bash脚本来扫描当前目录中的目录,并为目录树中的每个文件生成md5校验和值.它还应保留文件的相对路径并在文件中打印校验和.

例如,如果目录树看起来像这样:

.
??? d
?   ??? file1.c
?   ??? file2.c
??? e
?   ??? file3.c
??? f
    ??? file4.cpp
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

d8e8fca2dc0f896fd7cb4cb0031ba249  d/file1.c
d8e8fca2dc0f896fd7cb4cb0031ba249  d/file2.c
d8e8fca2dc0f896fd7cb4cb0031ba249  e/file3.c
d8e8fca2dc0f896fd7cb4cb0031ba249  f/file4.cpp
Run Code Online (Sandbox Code Playgroud)

但是我找不到一种方法来保存文件路径到CD时...

Dav*_*ann 6

find . -type f -exec md5sum {} \;
Run Code Online (Sandbox Code Playgroud)

要么...

find . -type f | xargs -n 1 -d "\n" md5sum
Run Code Online (Sandbox Code Playgroud)