转换后将文件移动到其原始位置

moving files to their original locations after conversion

我创建了一个 Bash 脚本来将文件从 .odt 转换为 .pdf,但转换后,该脚本将文件移动到当前工作目录中。由于脚本重复出现,我希望每个输出文件都保留在原始文件所在的位置。这是脚本。

#!/bin/bash
​
for file in $(find -type f -name '*.odt')
do
    echo $file
    libreoffice --headless --convert-to pdf $file
done

我尝试将 --outdir 设置为目录路径,但它会将所有文件移动到这些目录。我希望转换后的文件与原始文件位于同一目录中。

动态生成 --outdir 值,避免解析 find 的输出。

find . -type f -name '*.odt' -print -exec sh -c '
for fpath do
  soffice --headless --convert-to pdf <b>--outdir "${fpath%/*}"</b> "$fpath"
done' _ {} +