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

时间:2020-06-01 07:22:04

标签: linux bash libreoffice

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

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

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

1 个答案:

答案 0 :(得分:1)

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

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