大きいファイルの洗い出しとは|何ができて、どこで詰まるか
空きが残りわずかだと言われて、何が容量を使っているのかを探し始めたところで手が止まる。ダウンロードフォルダを開いても、並び順を大きさに変えるまでどれが重いのかは分かりません。大きいファイルの洗い出しとは、この「何が重いのか」を一覧に出して、そのうちどれを手放すかを決めるところまでを指す作業です。道具を替えれば終わるように見えて、実際には道具が見せてくれない場所で止まります。何ができて、どこで詰まるのかを順に見ていきます。
洗い出しは「測る」と「決める」の2つに分かれている
この作業を1つの手順だと思っていると、途中で必ず止まります。実際には性質の違う2つが並んでいます。
- 測る工程。ディスクのどこに何バイトあるのかを、大きい順に並べて見えるようにする
- 決める工程。並んだものを1つずつ見て、消す・外に出す・そのまま置く、のどれかに振り分ける
測る工程は機械がやってくれます。所要時間はディスクの中身とアクセスの速さで決まり、読み込みが終われば答えが出ます。詰まるのは決める工程のほうです。8GBの動画ファイルが1本出てきたとして、それが二度と使わない書き出しの残骸なのか、元データが手元にない唯一の素材なのかは、ファイルの大きさからは分かりません。名前と置き場所と日付を見て、頭の中で判断することになります。
多くの場合、洗い出しが終わらないのは測る道具が足りないからではありません。大きいものは10分もあれば一覧になります。そのあと、1件ずつ中身を確かめるために別のアプリを開き、元のフォルダを別の窓で開き、コマンドで中身を数え、また一覧に戻る。この往復が積み上がって、途中で放り出すことになります。洗い出しの道具を選ぶときに見るべきなのは、測る速さよりも、測った直後にその場で決められるかどうかです。
「大きい」の数え方が道具ごとに違う
同じファイルを2つの道具で見ると、数字が一致しないことがあります。これは片方が壊れているのではなく、何を数えているかが違うためです。
見かけの大きさは、そのファイルが持っているバイト数です。ディスク上の占有は、そのファイルを置くためにファイルシステムが実際に確保しているブロックの合計です。中身が空の領域を持つファイルでは前者が大きく、細かいファイルが大量にあるフォルダでは後者が大きくなります。コマンドの側では、この2つは明示的に切り替えられます。
Print apparent sizes, rather than file system usage. The apparent size of a file is the number of bytes reported by
wc -con regular files, or more generally,ls -l --block-size=1orstat --format=%s. 出典: gnu.org
数え方の違いはもう1つあります。macOSには、フォルダなのに1個のファイルのように見える入れ物があります。アプリ本体や写真のライブラリがそれで、Finderの一覧では1行として並びます。中で何が膨らんでいるのかは、右クリックから中身を開かないと見えません。ツリーマップ系のアプリはこの中まで分解して描くものが多く、コマンドの du も普通のフォルダとして数えます。同じ120GBの写真ライブラリが、道具によって1行になったり数千行になったりします。
さらに、APFSには同じ中身を二重に持たずに複製を作る仕組みがあります。複製した直後は実際の占有がほとんど増えませんが、道具によっては両方を満額で数えます。合計が実際の使用量を超えて見えるときは、たいていこれが理由です。
道具は大きく4種類ある
洗い出しに使うものは、見せ方と踏み込める深さで4つに分かれます。
| 種類 | 代表 | 見せるもの | 金額 |
|---|---|---|---|
| システム設定 | ストレージの画面 | 分類ごとの合計と、Appleが用意した削減の候補 | 標準装備 |
| Finderの検索 | 検索条件の保存 | 条件に合うファイルの一覧 | 標準装備 |
| ツリーマップ | DaisyDisk / GrandPerspective / OmniDiskSweeper | 面積で表した大きさの地図 | 無料から9.99ドル |
| コマンド | du / find | 数字の一覧。条件を自分で組める | 標準装備 |
システム設定の画面は、Appleの案内では次の場所から開きます。
Choose System Settings from the Apple menu, click General in the sidebar, then click Storage on the right. 出典: support.apple.com
ツリーマップ系では、DaisyDiskが買い切り9.99ドルで個人のMac5台まで、動作にmacOS 10.13以降が必要です。GrandPerspectiveはGNU General Public Licenseのオープンソースで、SourceForgeからは無料、App Store経由では2.99ドルと分かれていますが、公式ページには「You'll get the same app either way」と書かれています。OmniDiskSweeperは大きいファイルを大きい順に並べてゴミ箱へ送ることに絞った道具です。
コマンドの側は、du -sh * で直下の合計だけを出し、du -h -d 1 で1段だけ降りて並べます。-h が付くと単位が付き、単位は1024の累乗で計算されます。道具ごとの守備範囲の違いは他のファイル管理との比較にも一覧があり、どれが何をしないのかを先に見ておくと選び直しが減ります。
詰まるのは、道具が見に行けない場所
洗い出しが途中で合わなくなる原因は、ほぼ次の4つのどれかです。
1つ目は、消しても空きが増えない領域です。Time Machineは起動ディスクの控えを一定の間隔で取っていて、この控えが容量を持っています。Appleの説明では、控えはおよそ1時間おきに取られて24時間保持されます。
Your Mac counts the space used by snapshots as available storage. You don't need to think about how much storage space local snapshots are using, because they don't use the space needed for tasks like downloading files, copying files, or installing new software. 出典: support.apple.com
つまり、ディスクの使用量として見えていても、必要になれば自動で空く分が混ざっています。ここを削ろうとして時間を使うのは無駄になります。
2つ目は、権限が要る場所です。ほかのアプリの保存先や、システムが管理している領域は、アプリにフルディスクアクセスを与えないと読み取れません。許可がないアプリは、その部分を0バイトとして数えるか、単に飛ばします。合計が実際より小さく出ているときは、まず許可の状態を疑います。
3つ目は、外付けとネットワーク越しのボリュームです。読み取りに時間がかかるため、走査の途中で止めたくなります。途中で止めた結果を全体の答えとして扱うと、いちばん重いものを見落とします。
4つ目は、走査の対象から自動で外れている場所です。ゴミ箱の中、ほかの利用者のホーム、マウントされていないディスクイメージの中身は、道具によって数えたり数えなかったりします。同じMacを2つの道具で走査して合計が食い違ったときは、どちらかが間違っているのではなく、この4つのどこかで扱いが分かれていると考えるのが早道です。走査の設定画面を開いて、除外の一覧と対象ボリュームの指定を先に見比べてください。
大きいけれど手を付けてはいけないものがある
一覧の上位に並ぶものは、たいてい次のどれかです。消してよいかどうかは、大きさではなく再生成できるかどうかで決まります。
- 写真と動画のライブラリ。原本がここにしかない場合、消すと戻せません
- iPhoneやiPadの控え。端末を初期化したあとに要るのはこれです
- 仮想マシンや開発用の仮想ディスクの像。1本で数十GBになりますが、環境ごと作り直せるなら捨てられます
- ビルドの中間生成物と依存パッケージの置き場。作り直せるので、迷わず消せる側です
- ダウンロードフォルダに残った配布物。配布元がまだ公開しているなら、取り直せます
この5つを見分ける手がかりは置き場所です。書類のフォルダに置かれているものは人が作って人が置いたもので、多くは唯一の原本です。一方、利用者のライブラリの下や、アプリが自分で作った作業用のフォルダに入っているものは、ほとんどが作り直せます。名前に日付や連番が入っていて、同じ形のものが何本も並んでいるなら、それは書き出しの結果である可能性が高くなります。
判断の順番としては、再生成できるものから先に片付けます。作り直せるものは考える時間がほぼゼロで済むうえ、容量の割合としても大きいことが多いためです。残った「唯一のもの」だけを、外付けやクラウドに出す候補として並べ直します。この分け方をしておくと、次に同じ作業をするときに上位の顔ぶれが変わっているのがすぐ分かります。iPhoneやiPadから手元のファイルに触れる経路を残しておくと、外に出したあとで見に行く手間が減ります。端末側からの扱いはiPhone・iPadから続きをにまとまっています。
減らしてもすぐ戻るのは、生成元が残っているから
一度きれいにしたのに、数週間で元の水準に戻る。これは洗い出しの失敗ではなく、洗い出しだけをやって生成元に触れていないためです。容量は、どこかが作り続けているから増えます。作っているのは、ブラウザのダウンロード、書き出し先に指定したままのフォルダ、自動で溜まる中間ファイル、端末の控えの世代です。
そのため、洗い出しの最後に決めるべきなのは「何を消したか」ではなく「次に何が増えるか」です。上位20件の置き場所を見て、同じ親フォルダが何度も出てくるなら、そこが生成元です。生成元が分かれば、書き出し先を外付けに変える、保持する世代を減らす、定期的に空にする、といった手当てができます。1回の掃除を仕掛けに変えるのは、この一手だけです。
洗い出しを月に一度の作業として置くなら、条件を保存しておくと毎回組み直さずに済みます。Finderの検索条件は保存でき、コマンドなら短い別名にしておけば1行で呼べます。どちらにしても、結果を見た直後に中身を確かめられる状態にしておくのが要点です。
測った直後に決められるかどうかで、所要時間が変わる
洗い出しの所要時間を決めているのは、走査の速さではなく、一覧と中身と手当ての間を何回行き来するかです。大きいファイルが1本見つかるたびに、Finderで場所を開き、プレビューで中身を見て、ターミナルで同じ名前のものが他にないか探し、消すか移すかを決める。この往復が50件続くと、それだけで半日が消えます。
フォルダとターミナルとAIが同じ窓にある作りのファイル管理アプリが増えているのは、この往復を減らすためです。一覧から選んだその場でコマンドを打ち、結果を同じ画面で受け取れれば、アプリの切り替えが消えます。何がその窓でできるのかはできることに整理されています。表示の言語をどこまで選べるかは対応言語に、費用の形は料金にあります。導入の前に引っかかりやすい点はよくある質問にまとまっているので、判断の材料として先に見ておくと選び直しが減ります。
道具を替えるかどうかを決める前に、いま自分がどちらで止まっているのかを確かめます。測る工程で止まっているなら、権限と走査範囲の設定を見直すだけで済みます。決める工程で止まっているなら、道具の走査速度を上げても所要時間は変わりません。変えるべきなのは、決めるために開いている窓の数のほうです。
よくある質問
システム設定のストレージ画面だけでは足りませんか?
分類ごとの合計を知るには十分ですが、どのファイルが重いのかを1件ずつ並べる用途には向きません。分類の中身は展開できる範囲が限られていて、アプリの中の入れ物や再生成できる中間ファイルは分類の内側に隠れます。個別のファイルまで降りたいときは、ツリーマップ系のアプリかコマンドを足すことになります。
洗い出しの前に準備しておくことはありますか?
走査するアプリにフルディスクアクセスを与えておくことと、外付けとネットワークのボリュームを対象に含めるかどうかを先に決めておくことです。許可がないままだと、読めなかった部分が0として数えられ、合計が実際より小さく出ます。走査の途中で止めた結果をそのまま使わないことも大切です。
消しても空き容量が増えないのはなぜですか?
起動ディスクの控えが容量として計上されている場合があります。Appleの説明では、この控えは必要になった時点で自動的に削除され、ダウンロードやコピーのために必要な容量を奪わない扱いになっています。ゴミ箱を空にしていない、ほかのアプリがファイルを開いたままにしている、という単純な理由のこともあります。
無料の道具と有料の道具では何が違いますか?
測る精度そのものは大きく変わりません。違いが出るのは、走査の速さ、削除を取り消せるかどうか、パッケージの中まで分解して描けるかどうか、といった扱いやすさの部分です。GrandPerspectiveのように、配布元によって無料と2.99ドルに分かれていて中身は同じ、という例もあります。