У меня есть несколько файлов .rst в нескольких папках и подпапках в моей системе Debian.

Как я могу создать скрипт, который преобразует все файлы .rst в html (с помощью команды rst2html) и создает новые папки и подпапки, сохраняя оригинальную структуру?

Я пытался это, но это не удается:

#!/bin/bash

for i in $(find $directory -type f -name \*.rst)
do

rst2html "$i" "./html${i%.html}"

done

Я создал папку html, поэтому я просто хочу поместить в нее все преобразованные .rst с той же древовидной структурой.

Терминальная ошибка:

Unable to open destination file for writing:
  OutputError: [Errno 2] No such file or directory: './html./gdalogr/nearblack.rst'

1 ответ1

1

Вы должны внести следующие изменения в ваш скрипт:

  • Создайте недостающие каталоги перед вызовом `rst2html '
  • Измените целевой путь, добавив дополнительный / чтобы исходный аргумент find начинался с точки.

Вот предлагаемое решение:

#!/bin/bash

directory=$1

for i in $(find $directory -type f -name \*.rst)
do
    RST_FILE="$i"
    HTML_FILE="./html/${i%.html}"
    HTML_DIR=$(dirname ${HTML_FILE})
    mkdir -p ${HTML_DIR}
    rst2html "$i" "$HTML_FILE"
done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .