我想将一个目录(我的 Zotero 库)中的所有 PDF 同步到 Dropbox。最后,我想要一个所有 PDF 的列表,而不是目录名称。
我使用以下命令成功同步了所有 PDF:
rsync -az --include="*/" --include="*.pdf" --exclude="*" \
--prune-empty-dirs /zotero /dropbox
我想我可以轻松地设置一个cron
工作来每天重做该任务,但还没有尝试过。
但现在我在 Dropbox 上的文件夹仍然包含所有包含 PDF 的目录(例如6NVTACJH > xyz.pdf
)
我的问题:
我希望只在一个目录中列出所有 pdf 文件。继建议从网上,我尝试了find
所有 pdf 并创建了硬链接。
但这个命令还不起作用。
ln $( find -name="*.pdf" -type f - links 1 ) /dropbox
你能帮我执行最后一个命令吗?
答案1
我建议使用 find -exec 而不是命令替换,因为它可以很好地处理文件名。
如果您尝试将所有 pdf 文件复制到一个单级 /dropbox 目录中?
find /zotero -type f -name '*.pdf' -exec cp {} /dropbox/ \;
如果你想要链接:
find /zotero -type f -name '*.pdf' -exec ln {} /dropbox/ \;
更新:您可以在单个文件上使用 rsync,只需将 cp/ln 替换为 rsync(这会很慢):
find /zotero -type f -name '*.pdf' -exec rsync -avz {} /dropbox/ \;
另一个选择是tar,它也提供按访问时间更新的功能。
我想问为什么你需要这样做,你使用Dropbox的有限版本控制吗?或者您是否使用 Dropbox 即时共享文件?
对于那些我需要版本控制和 alpha 更新的人,我个人将 git 或 bazaar 存储库驻留在 Dropbox 文件夹中,在我的本地目录中提交,然后推送到 Dropbox 文件夹,比任何托管服务商都快。