使用 find 命令将 markdown 文件转换为 html

Abh*_*ogi 20 bash find

假设我的硬盘上有扩展名为.md.

我想将所有这些文件转换为.htmlthroughfind-exec选项。

将 Markdown 文件转换为 html 的命令是

markdown readme.md > readme.html
Run Code Online (Sandbox Code Playgroud)

我正在尝试使用类似的东西:

find / -name "*.md" -type f -exec markdown {} > {}.html \;
Run Code Online (Sandbox Code Playgroud)

当然,上面的方法是行不通的。那么,我如何只使用findand 来做到这一点exec

rus*_*ush 19

您需要引用包含的构造,>因为它是一个 shell 特殊字符,如下所示:

find / -name "*.md" -type f -exec sh -c 'markdown "$0" > "$0.html"' {} \;
Run Code Online (Sandbox Code Playgroud)

这也将重命名文件,因此您最终会得到foo.html而不是foo.md.html

find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;
Run Code Online (Sandbox Code Playgroud)