rsync のようにファイル システム間でファイルを同期するプログラムを作成していますが、パッケージの処理に関して行き詰まっています。これらは、一貫した一連のファイルを含むものとしてシステムによって識別されるフォルダーです。Pages と Numbers はモノリシック ファイルではなくパッケージを使用でき、たとえばアプリケーションは実際にはパッケージです。私の問題は、最新バージョンを保持し、バックアップ コピーも保持したいということです。私が見る限り、2つのオプションがあります-
- 全体を通常のフォルダとして扱い、内容をエントリごとに処理できます。
- すべてのコンテンツのすべての変更日を確認し、最後に変更されたコンテンツを含む完全なフォルダー ツリーを保持できます。
私は (2) を目指していましたが、iPhoto ライブラリが実際にはパッケージとして保存されていることがわかりました。つまり、1 つの写真だけが変更されたとしても、ライブラリ全体 (数十ギガバイト、場合によっては数百ギガバイト) をコピーすることになります。
(1) に関する私の懸念は、コンテンツ ファイルを個別に処理すると問題が発生する可能性があることです。私は、パッケージが機能し、場合によっては不必要に大きなバックアップ ファイルを必要としないことを保証する優れた解決策を思いつきませんでした。それが単なる iPhoto の場合は、おそらく特別なケースに入れたり、パッケージがユーザー指定の制限よりも大きい場合は戦略を変更したりできます。
パッケージは驚くほど不思議で、システムがパッケージとして扱うのは、フォルダに拡張属性を設定するだけではないようです。