我一直在尝试使用命令行中的 libreoffice 将一堆非常旧的 MS Office 文件批量转换为 odf 格式以用于存档目的。为此,我首先将所有文件收集在一个目录中,然后在所述目录中调用以下命令(用于 doc 文件):
/path/to/soffice --headless --convert-to odt *doc
这很好用,该命令会导致目录中的所有 doc 文件一次性转换。但是,我想避免总是soffice
用必要的参数输入路径,所以我在我的 Bash 配置文件中添加了以下内容:
alias libreconv='function _libreconv(){ /path/to/soffice --headless --convert-to "$1" "$2"; }; _libreconv'
但是,当我现在尝试调用以下内容时:
libreconv odt *doc
这导致只有目录中的第一个 doc 文件被转换,之后函数退出并返回我提示......也许我错过了一些明显的东西(毕竟我是一个 cli newb),但我不明白为什么当我soffice
直接运行命令时,调用该函数只会转换第一个文件而不是所有文件。
提前感谢任何帮助我了解这里出了什么问题的帮助。:)