如何使用 Dropbox 同步一个目录中的所有 PDF?

mcb*_*etz 5 find rsync dropbox ln

我想将一个目录(我的 Zotero 库)中的所有 PDF 同步到 Dropbox。最后,我想要一个所有 PDF 的列表,而不是目录名称。

我使用以下命令成功同步了我所有的 PDF:

rsync -az --include="*/" --include="*.pdf" --exclude="*" \ 
--prune-empty-dirs /zotero /dropbox
Run Code Online (Sandbox Code Playgroud)

我想我可以轻松地设置一份cron工作来每天重做该任务,但还没有尝试过。

但是现在我在 Dropbox 上的文件夹仍然包含所有包含 PDF 的目录(例如6NVTACJH > xyz.pdf

我的问题: 我希望只在一个目录中列出所有 pdf。根据网络上的建议,我尝试使用find所有 pdf 并创建硬链接。

但是这个命令还不起作用。

ln $( find -name="*.pdf" -type f - links 1 ) /dropbox
Run Code Online (Sandbox Code Playgroud)

你能帮我完成最后一个命令吗?

Mea*_*lpa 1

我建议使用 find -exec 而不是命令替换,因为它可以很好地处理文件名。

如果您尝试将所有 pdf 文件复制到一个单级 /dropbox 目录中?

find /zotero -type f -name '*.pdf' -exec cp {} /dropbox/ \;
Run Code Online (Sandbox Code Playgroud)

如果你想要链接:

find /zotero -type f -name '*.pdf' -exec ln {} /dropbox/ \;
Run Code Online (Sandbox Code Playgroud)

更新:您可以在单个文件上使用 rsync,只需将 cp/ln 替换为 rsync(这会很慢):

find /zotero -type f -name '*.pdf' -exec rsync -avz {} /dropbox/ \;
Run Code Online (Sandbox Code Playgroud)

另一个选择是tar,它也提供按访问时间更新的功能。

我想问为什么你需要这样做,你使用Dropbox的有限版本控制吗?或者您是否使用 Dropbox 即时共享文件?

对于那些我需要版本控制和 alpha 更新的人,我个人将 git 或 bazaar 存储库驻留在 Dropbox 文件夹中,在我的本地目录中提交,然后推送到 Dropbox 文件夹,比任何托管服务商都快。