ili*_*dis 5 evince file-metadata
使用 evince 我为 pdf 文件添加了书签(在 ubuntu 16.04 中)。我想复制这些 evince 的书签。我发现它们存储为元数据,可以使用
gvfs-info myfile.pdf
但是我发现无法将这些书签“粘贴”到文件元数据,如果我将它复制到另一个位置或另一台计算机。在这里发现了同样的问题,但建议 (cp --preserve=all) 不起作用。
(我主要使用带有 cinnamon 的 ubuntu 16.04,但我也安装了一些 Mint 版本。)
您链接到的答案是错误的 - 距离正确还差得很远。保留的属性cp
只是文件系统属性(所有权、时间戳、权限)。文件元数据完全无关。
没有任何简单的方法可以将特定于应用程序的数据(例如evince
书签)复制到另一个系统。书签不存储在文件中或与文件一起存储,而是由 evince 使用GIO存储。
您可以使用 提取元数据gio info
,将其存储在文件中,然后将其恢复到远程系统上。例如,如果使用scp
复制远程主机上的文件:
gio info -a "metadata::evince::bookmarks" filename.pdf |
sed -n '/metadata::/ s/^.*: //p' > filename.bookmarks
scp filename.pdf filename.bookmarks user@remote:/path/to/store/file/
Run Code Online (Sandbox Code Playgroud)
然后,在远程系统上:
cd /path/to/store/file/
gio set filename.pdf 'metadata::evince::bookmarks' "$(cat filename.bookmarks)"
Run Code Online (Sandbox Code Playgroud)
顺便说一句,如果您使用标准 unix 工具(例如cp
或mv
)来复制或移动文件,而不是停留在 GIO 感知应用程序(例如nautilus