Finder「情報を見る」のファイルサイズについて

既出の質問でしたら申し訳ありません。またものすごく単純なことを勘違いしているかもしれません。


Finder の「情報を見る」でファイルサイズを確認すると、特定のファイルで不思議な表示をしていることに気づきました。

そのファイルのパスは下記です。


/Applications/iMovie.app/Contents/Frameworks/StudioSharedResources.framework/Versions/A/Resources/AppThemeBitsB.car


Finder の表示が下記です。

ユーザがアップロードしたファイル

108.7MB(108,659,841 byte) で「ディスク上の21MB」とは、どのように解釈すれば良いのでしょうか。

よろしくお願いいたします。


追加情報。

クリーンインストール環境(クリーンインストール環境をTime Machine でバックアップ後、復元。)でiMovie をダウンロードした環境でも同じ表示をしていました。試しにFinder でコピーしてみても変化なし。cp -pコマンドでコピーすると「ディスク上の108.7MB」に変わります。NAS にコピーしても「ディスク上の108.7MB」となりました。

なお通常は覗かないアプリケーションの中のファイルの容量が気になったのはdu -shコマンドの容量表示とFinder 「情報を見る」の容量が険しく異なる理由が知りたくて調らべていたためです。(私がdu コマンドの使い方を間違ってる可能性が大きい。5 割ほどFinder の方が多いのです。)


MacBook Pro(17-inch, Late 2011)

MacBook Pro(Retina, Mid 2012)

OS X 10.11.4

iMovie 10.1.2

投稿日 2016/05/04 05:52

返信
返信: 16

2016/05/04 06:22 onesize への返信

onesize さんによる書き込み:


.carファイルで検索すると、圧縮ファイルのようです。

なるほど。圧縮されてディスク上では容量を使っていないという意味の表示なのでしょうかね。

探すと大量に見つかると思うので、例としてあげなかったのですが他のアプリケーションでtif でも3割くらいファイルサイズが違うものが見つかっています。


そこらへんがdu コマンドとズレが生じる原因なのかもしれませんね。調べようがあるのか考えてみます。

2016/05/10 08:11 ni_ki への返信

因みに、当該フォルダにはこんなのもありました。

ユーザがアップロードしたファイル

ファイルサイズが4KBあるのにディスクを消費してない?

.carファイルでは5倍ですたが、これは4倍と倍数として考えると圧縮が関係あるのか疑問になりますね。

うまく表現できないのですが、システムは論理的にファイルサイズを把握しているが、物理的にはどうだか分からないよ?ってことなのでしょうか?

もしかすると、"このシステムについて"のストレージの表示もこの件が関係あるのでしょうか?

2016/05/04 07:52 onesize への返信

onesize さんによる書き込み:


ファイルサイズが4KBあるのにディスクを消費してない?

.carファイルでは5倍ですたが、これは4倍と倍数として考えると圧縮が関係あるのか疑問になりますね。

これはもしかすると圧縮後の端数処理の問題かもしれないです。私のところで、cp コマンドでコピーしてみたら「ディスク上の8KB」になりました。

それで私が最初に示したファイルをFinder で圧縮してみたところ、18MB になりました。どうやらこのファイルについては圧縮しているのでディスク上の容量を使っていないという表示で間違いないようです。

さらにトピックを立てる前の調査が甘かったのですが、一部のアプリケーションは逆に「ディスク上の」の方が数値が大きいです。

iTunes 12.3.3.17

302.6MB

ディスク上の322.3MB

とのこと。他にもServer.app など幾つかあります。

謎ですね。

ちなみにdu コアンドだとiTunes は185M だそうです。この差はリンクの扱いの問題もあるですかね。

Xcode はもっとずれが大きいのですが、こいつはちょっと特殊なアプリケーションな気がするので、今は対象外です。

もしかすると、"このシステムについて"のストレージの表示もこの件が関係あるのでしょうか?

実はそれも視野に入れてトピックを立てました^^;

ことの発端はアプリケーションが「その他」にカウントされたまま修正できなくなったのでdu コマンドで容量を調べだしたことでした。

その際にcp -p -R でアプリケーションを「単体でコピー」するとものすごく容量が変わる症状も確認されました。helper だったかxpc とかがコピーされなかったのが原因のようでした。アプリケーションフォルダごとコピーすれば容量変化なしで、単体コピーでも症状が出ないことがあり不思議な現象となっています。

OS X はアプリケーションを常に追跡しているらしいことはApp Store のアップデートでわかるのですが、そこら辺の影響かと思っています。


以下、余談。

OS X のフルインストーラーもアップデートされますので、昔のOS をインストーラーで保存している方はご注意を。外付けに保存していて繋いだままダウンロードしたらアップデートされてしまったことがあります。インストーラーがアップデートされるとは思っていませんでした。

2016/05/04 18:20 onesize への返信

onesize さんによる書き込み:


こまかいことは省略しちゃいますが、結局のところmds…?

mds プロセスとの関係は不明ですね。

該当のファイルやiMovie.app を別ボリュームにコピーすると展開(解凍かな)されるようです。du コマンドでも「情報を見る」でもほぼ差がなくなります。

別ボリュームにコピーで展開(解凍かな)というのも解せないです。ただ圧縮しているだけなら、そのままで良いはずなので。表示のあやなのか実際にアプリケーションフォルダ内だと圧縮されているのかも不明ですね。

内部のファイルはどうやら「情報を見る」ではディスクスペースの占有量を() 内に表示しているように見えますが、iMovie.app 自体の「情報を見る」では展開後のフルサイズを表示しています。不明な点が多いです。

2016/05/10 08:11 ni_ki への返信

du と Finder で得られるファイルサイズの違いは、主として HFS+ 圧縮を加味してるか否かだと思います。afsctool でファイルの情報を確認してみてはどうでしょうか?


afsctool

https://brkirch.wordpress.com/afsctool/


使い方は、ダウンロードした afsctool_34.zip をデスクトップに展開して、こんな感じ。

$HOME/Desktop/afsctool_34/afsctool -v "/path/to/なんちゃら.car"


※ "/path/to/なんちゃら.car" のところはデータを取得したいファイルをフルパスで指定してください。

2016/05/05 00:37 ni_ki への返信

 小生全く知らなかったのですが、今日関連の質問がcocoa dev mailing listに流れていました。

システム関連のファイルでしか使われないようですが、圧縮された結果がリソースフォークに格納

されてデータフォークがゼロになるものがあるようです。この場合ファインダーはデータフォーク

サイズしか表示しないので0MB表示になることが有ると。またこれらのファイルはそのまま(解

凍せずに)保持され、(標準のAPIを使用して普通にアクセスするとシステムが解凍しながらデ

ータを返してくれるということだそうです。したがってコピーの仕方によっては解凍されたものが

コピーされることになりますね。

参考サイト:HFS+ File Compression

2016/05/05 01:32 品川地蔵 への返信

情報ありがとうございます。リンク先がアルファベットだけが並んでいてビックリ^^;でしたが、zlib とやらで圧縮する事もあるとの事。「zlib とはなんぞや」とネットを調べたらpng 形式の画像でも使う圧縮方法との事でした。iMovie の中でpng ファイルの扱いが違う気配がするのはzlib を使っているからなのかもですね。Finder はこのHFS+ 圧縮のファイルの移動やコピーに対応しているがcp コマンドは少なくともノーマルでは解凍するということなのですね。もしかしてcp コマンドのman あたりにも記載があるのかもですね。man cp を読む能力は無いですが。

2016/05/05 06:20 ni_ki への返信

試してみました。

やはり皆様のご指摘のようにHFS+圧縮による表示の違いのようです。私が最初にあげたファイルで確認するとFinder の表示と同じでした。du コマンドはリソースフォークなどを除く部分の実占有を表示しているのですね。今回の件ではcp コマンドが展開に使えることも、わかりました。


ところでzlib で圧縮されたユーザーファイルがもし存在する場合、それは「アーカイブユーティリティ」で解凍できるのでしょうか。今回の件ではcp コマンドで勝手に解凍されますが、もし単純なユーザーデータファイルが存在したらどうなのでしょうか。

2016/05/05 06:37 ni_ki への返信

ni_ki による書き込み:


ところでzlib で圧縮されたユーザーファイルがもし存在する場合、それは「アーカイブユーティリティ」で解凍できるのでしょうか。今回の件ではcp コマンドで勝手に解凍されますが、もし単純なユーザーデータファイルが存在したらどうなのでしょうか。

 圧縮した結果がリソースフォークに格納されていれば、同じように働くのではないでしょうか?

ただし、普通にzlib圧縮しただけではデータフォークに置かれると思いますが。zlib圧縮をサポートするユティリティが有って、リソースフォークへの格納をサポートしていれば確認できますが... 自作する気はありません^_^;

2016/05/05 07:01 品川地蔵 への返信

品川地蔵 さんによる書き込み:

 圧縮した結果がリソースフォークに格納されていれば、同じように働くのではないでしょうか?

これは私も、そのように考えています。

普通にzlib圧縮しただけではデータフォークに置かれると思いますが。

この場合、「どのような挙動をするのかな?」と思って先の書き込みをしてしまいました。ちょっと、不明な圧縮ファイルが解凍できず別の問題で悩んでおりまして。

自作する気はありません^_^;

プロをタダ働きさせるつもりは私もありません^^;;

(プロフィール(?)をお読みするとそちらの業界の方ですよね。「そりゃ英語サイトが出てくるわけだ」と思ってしまいました^^)


2016/05/05 07:29 ni_ki への返信

ni_ki さんによる書き込み:


今回の件ではcp コマンドが展開に使えることも、わかりました。


cp を使うと結果として復元できますが、ファイルの作成日情報がなくなってしまうという、また別の問題があるので、あまりおすすめはできません。圧縮についても同様で ditto で可も、作成日情報が削られてしまいます。


afsctool は -c で圧縮、-d で復元ができ、cp や ditto のような問題もないので、まあ、おすすめではありますが、HFS+ 圧縮はシステム用途ですから、基本的にはシステム任せが吉かなと。

このスレッドはシステム、またはAppleコミュニティチームによってロックされました。 問題解決の参考になる情報であれば、どの投稿にでも投票いただけます。またコミュニティで他の回答を検索することもできます。

Finder「情報を見る」のファイルサイズについて

Apple サポートコミュニティへようこそ
Apple ユーザ同士でお使いの製品について助け合うフォーラムです。Apple Account を使ってご参加ください。