Supongamos que tengo archivos en mi disco duro con extensiones como .md.
Quiero convertir todos esos archivos a .htmltravés findy la -execopción.
El comando para convertir un archivo markdown a html es
markdown readme.md > readme.htmlEstoy tratando de usar algo como:
find / -name "*.md" -type f -exec markdown {} > {}.html \;Por supuesto, lo anterior no funciona. Entonces, ¿cómo hago eso usando solo findy exec?

Respuestas:
Debe citar alrededor de la construcción que contiene
>porque es un carácter especial de shell, como este:Esto también cambiará el nombre de los archivos para que termines en
foo.htmllugar defoo.md.html:fuente
{}al final en ambos comandos? Además, en el segundo comando, ¿es difícil de seguir para mí lo que sucedió? No entendí la${0%.md}/.htmlparte.${0%.md}/.html.{}es el argumento de entrada para elsh -ccadena, y allí se accede como$0. El comando que no entiendes elimina.mdy agrega.html. Probablemente tienes razón con escapar de la..mdy agregando,.htmlpero me gustaría saber más al respecto. ¿Me puede redirigir a un wiki / documento que explica esto?La manera de lograr exactamente lo que ha escrito es usar
markdownla-oopción, que especifica el nombre del archivo de salida, es decirHacerlo de esta manera evita iniciar un nuevo shell solo para ejecutar Markdown.
Desafortunadamente, como señala Bernhard, hacerlo de esta manera le da archivos nombrados en
file.md.htmllugar defile.html, por lo que el enfoque de rush es más apropiado aquí.fuente
markdownno tiene una-oopción. Verifiqué dos veces antes de comentar.pandoc -f markdown -t html -o....