スクリーンセーバーに表示されている画像はどこに保存されていますか。


0

私はMacにはまったく慣れていませんが、この問題を抱えている友人がいます(彼女はMacの人ですが、コンピューターの人ではありません)。

問題は、彼女がスクリーンセーバーの回転に表示されるいくつかの古い写真を持っていることです - 彼女は本当にそれらを保存/バックアップしたいのですが、私たちは彼女のコンピュータでそれらを見つけることができないようです。

それらはiPhotoにはない、そして彼女の箱の中のすべての画像を検索してもそれらが現れない。

スクリーンセーバースライドショーのシステムプロパティを見ると、写真のリストを見ることができますが、それらがどこに格納されているかを知る方法はありません(少なくとも私が見つけることができるということ)。クリックしてダブルクリックするだけで、小さなウィンドウで開くことができます。マウスで右クリックすることはできません。キーボードで表示されるすべてのシンボルクリックを試してみました。

スクリーンセーバーのローテーションの写真がどこに保存されているのか、そして全コンピュータ検索ですべての画像が表示されないのはなぜでしょうか。

回答:


4

フォルダの名前は システム環境設定»デスクトップスクリーンセーバー»スクリーンセーバー 。それだけでは見つからない場合は、2つの選択肢があります。

  1. ファイルシステム上のフォルダの場所を指定して、エンコードされたデータをデコードします。
  2. そのフォルダの画像が表示されている間にファイルシステムへのアクセスを監視します。

データをデコードする

場所はに保存されています ~/Library/Preferences/ByHost/com.apple.screensaver.*.plist* UUIDです。

ターミナルで次のコマンドを実行してください。

/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:]]+/'

これは最初に最新のものを取得します com.apple.screensaver.*.plist 含まれていないファイル slideshow その名前で、その内容を読んでください。プロパティリストファイルの関連エントリは、 moduleDict:fileRef

これで、戻り値(多くのバイナリデータ)がファイルのURLに対してフィルタ処理されました。これは印刷されています。私のシステムでは、このようになります。

file:///Users/danielbeck/Pictures/

その道は、もちろん、 /Users/danielbeck/Pictures

ファイルシステムを監視する

開いた システム環境設定»デスクトップスクリーンセーバー»スクリーンセーバー プレビューしたいフォルダを選択します。

さて、このウィンドウを開いたままターミナルウィンドウを開いて以下を実行してください。

sudo opensnoop | grep -v '/.vol' | grep "System Pref"

パスワードを入力してお待ちください。イメージファイルがロードされるときにそのイメージファイルへのパスが印刷されます(あるファイルが表示されているときは、次のファイルがすでにロードされています)。記載されているファイルの一部は 偽陽性 しかし、それらは認識しやすいはずです。

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

これを使用して、写真フォルダへのパスを見つけます。


またはfseventer、それが簡単ならば;)
slhck

@slhckワンライナーでバッシュ! osascript -e "tell application \"Finder\" to { activate, display dialog \"$( echo -e "$( /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:]]+/' | sed 's/+/ /g; s/%/\\x/g' )" | cut -c8- )\" }" 2>/dev/null || true
Daniel Beck

@DanielBeck - を共有してくれてありがとう opensnoop 方法。 OS X 10.9と10.10、およびSIPを無効にした後の10.11で即座に動作しました(リカバリモード>端末> csrutil disable; reboot
Miles Wolbe
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.