屏幕保护程序中显示的图像存储在哪里?

Eli*_*Eli 2 screensaver file-location macos

我对 Mac 一点也不熟悉,但我有一个朋友遇到了这个问题(她是 mac 用户,但不是计算机用户),所以我想尝试一下。

问题是她的屏幕保护程序轮换中显示了一些旧照片 - 她真的想保存/备份它们,但我们似乎无法在她的计算机上找到它们。

它们不在 iPhoto 中,并且搜索她盒子上的所有图像也找不到它们。

查看屏幕保护程序幻灯片的系统属性,您可以看到图片列表,但无法知道它们的存储位置(至少我可以找到)。单击并双击只是在一个小窗口中打开它,我无法用鼠标右键单击,我尝试了键盘上可以看到的所有符号单击 - 没有爱。

谁能告诉我屏幕保护程序旋转中的图片存储在哪里,以及为什么它们可能不会出现在对所有图像的完整计算机搜索中?

Dan*_*eck 5

该文件夹的名称在System Preferences \xc2\xbb Desktop & Screen Saver \xc2\xbb Screen Saver中给出。如果这还不足以找到它,您有两个选择:

\n\n
    \n
  1. 解码指定文件夹在文件系统上的位置的编码数据
  2. \n
  3. 显示该文件夹中的图像时监视文件系统访问。
  4. \n
\n\n

解码数据

\n\n

该位置存储在 中~/Library/Preferences/ByHost/com.apple.screensaver.*.plist*是一个 UUID。

\n\n

现在在终端中运行以下命令:

\n\n
/usr/libexec/PlistBuddy -c \'Print moduleDict:fileRef\' $( ls -t ~/Library/Preferences/ByHost/com.apple.screensaver.*.plist | grep -v slideshow | head -n1 ) | grep -oaE \'file://[^[:cntrl:]]+/\'\n
Run Code Online (Sandbox Code Playgroud)\n\n

这将首先获取名称中com.apple.screensaver.*.plist不包含的最新文件并读取其内容:属性列表文件的相关条目是.slideshowmoduleDict:fileRef

\n\n

现在,返回值(很多二进制数据)已被过滤为文件 URL。这是打印出来的。在我的系统上,它看起来像这样:

\n\n
file:///Users/danielbeck/Pictures/\n
Run Code Online (Sandbox Code Playgroud)\n\n

路径当然是/Users/danielbeck/Pictures

\n\n

监控文件系统

\n\n

打开系统偏好设置 \xc2\xbb 桌面和屏幕保护程序 \xc2\xbb 屏幕保护程序,然后选择要查找的文件夹以查看预览。

\n\n

现在,保持此窗口打开,打开终端窗口并运行以下命令:

\n\n
sudo opensnoop | grep -v \'/.vol\' | grep "System Pref"\n
Run Code Online (Sandbox Code Playgroud)\n\n

输入密码,然后等待。它将在加载图像文件时打印图像文件的路径(当显示一个文件时,下一个文件已经加载)。列出的一些文件是误报,但它们应该很容易识别:

\n\n
501  77313 System Preferen  16 /Users/danielbeck/Pictures/Icons/fugue-icons-2.0/icon/contrast-small.png \n501  77313 System Preferen  16 /Users/danielbeck/Pictures/Icons/Crystal Clear/22x22/actions/ok.png \n501  77313 System Preferen  16 /System/Library/ColorSync/Profiles/sRGB Profile.icc \n501  77313 System Preferen  16 /Users/danielbeck/Pictures/Icons/GNU Lesser General Public License/nuvola/64x64/mimetypes/tgz.png \n501  77313 System Preferen  16 /Users/danielbeck/Pictures/Icons/crystal_project/32x32/devices/pipe.png \n
Run Code Online (Sandbox Code Playgroud)\n\n

使用它来找到图片文件夹的路径。

\n