web-dev-qa-db-ja.com

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

私はMacにあまり詳しくないのですが、この問題を抱えている友人がいます(彼女はMacの人ですが、コンピューターの人ではありません)ので、試してみようと思いました。

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

それらはiPhotoにはなく、彼女のボックスですべての画像を検索してもそれらは表示されません。

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

スクリーンセーバーローテーションの写真が保存されている場所と、すべての画像の完全なコンピューター検索で写真が表示されない理由を誰かに教えてもらえますか?

1
Eli

フォルダの名前はシステム環境設定"デスクトップとスクリーンセーバー"スクリーンセーバーで指定されます。それを見つけるのに十分でない場合は、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:]]+/'

これにより、名前にslideshowが含まれていない最新のcom.Apple.screensaver.*.plistファイルが最初に取得され、その内容が読み取られます。プロパティリストファイルの関連エントリはmoduleDict:fileRefです。

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

file:///Users/danielbeck/Pictures/

もちろん、パスは/Users/danielbeck/Picturesです。

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

開くシステム環境設定"デスクトップとスクリーンセーバー"スクリーンセーバープレビューを表示するには、検索するフォルダーを選択します。

ここで、このウィンドウを開いたまま、ターミナルウィンドウを開き、次のコマンドを実行します。

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

パスワードを入力して、お待ちください。ロード時に画像ファイルへのパスを出力します(1つのファイルが表示されているとき、次のファイルはすでにロードされています)。リストされているファイルのいくつかは誤検知ですが、簡単に認識できるはずです。

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 

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

4
Daniel Beck