我的 Debian 系统上的多个文件夹和子文件夹中有多个 .rst 文件。
如何创建一个脚本,将所有 .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
您应该对脚本进行以下更改:
- 在调用“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