私のハードドライブに拡張機能があるとしましょう.md
。
.html
これらのファイルをすべてスルーfind
とオプションに変換したいと思います-exec
。
Markdownファイルをhtmlに変換するコマンドは次のとおりです。
markdown readme.md > readme.html
私は次のようなものを使用しようとしています:
find / -name "*.md" -type f -exec markdown {} > {}.html \;
もちろん上記の方法は通じません。それではfind
、andだけを使用してこれをどのように実行できますかexec
?
ベストアンサー1
>
含まれる構文は次のようにシェル特殊文字であるため、引用符で囲む必要があります。
find / -name "*.md" -type f -exec sh -c 'markdown "$0" > "$0.html"' {} \;
これによりファイル名も変更されるので、foo.html
代わりに次のように終了しますfoo.md.html
。
find / -name "*.md" -type f -exec sh -c 'markdown "${0}" > "${0%.md}.html"' {} \;