我已经以doc格式存储了许多文件,这些文件只能在Mac上用libreoffice打开。
命令:
./soffice --headless --convert-to docx --outdir /home/user ~/Downloads/*.doc
确实可以实现:将所有*.doc
文件转换为libreoffice*.docx
文件。
我的问题是我有包含这些文件的文件夹和子文件夹。
有什么方法可以搜索起始目录中的所有文件夹,并让“办公室”在每个这些文件夹中执行其工作,并将新版本(*.docx
)确切地存储在*.doc
找到原始版本()的位置。
不幸的是,我并不精通Apple脚本或终端来完成这项工作。但是,成百上千个文件夹中有8000个doc文件,需要更新到docx。
谢谢你的帮助。
有什么方法可以搜索起始目录中的所有文件夹,并让“办公室”在每个这些文件夹中执行其工作,将新版本(.docx)存储在找到原始版本( .doc)的确切位置。
实际上,这可以在Terminal中使用以下find
命令完成:
find '/path/to/directory' -type f -iname '*.doc' -execdir /Applications/LibreOffice.app/Contents/MacOS/soffice --headless --convert-to docx '{}' \;
在上面的示例命令中,更改'/path/to/directory'
为目标目录的实际路径名,该目标目录包含包含files的子目录。.doc
简而言之,此find
命令的作用是在的分层目录结构中查找所有.doc
文件,并在包含文件的每个子目录中执行该命令,然后在其子目录中将每个文件转换为原位。'/path/to/directory'
.doc
笔记:
在终端中运行命令之前,请务必确保已正确备份,键入的命令将产生所需的行为!
该命令不承担任何.docx
文件已在同一存在名称为.doc
文件中的子目录,因为它会自动覆盖所有现有.docx
文件相同的名称为.doc
文件。据我所知,该soffice
命令没有提供不覆盖现有文件的选项。如果这将成为一个问题,那么将需要一个不同的解决方案。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句