mac クラウドファイル管理で詰まる4か所と、次に決めること

同期アプリを入れたMacには、1つに見えて実は2つあるファイルの置き場ができる。Finderのサイドバーにクラウドの項目が並び、フォルダは開き、書類もそこにある。ところが別のファイル管理アプリで同じ場所を開いた途端に、サイドバーに出てこない、フォルダの走査が何分も終わらない、容量表示が実際と桁違いになる、といったことが起きる。mac クラウドファイル管理でつまずく場所は、ほとんどがこの4つに集約される。

これはアプリの不具合ではない。macOSのクラウド保存は数年前に「ただのフォルダ」であることをやめており、多くの道具がまだ古い前提のまま作られている。いま実体がどこにあり、ファイル管理アプリに何が許されているのかを押さえると、選び方は好みの問題ではなく、はい・いいえで答えられる確認作業に変わる。

クラウドの実体は「フォルダ」から「拡張機能」に変わった

macOS 12.3以降、クラウド保存を提供する各社は、ボリュームをマウントしたりホームフォルダに専用フォルダを置いたりする方式をやめ、AppleのFile Provider拡張を通す方式へ移行した。Google ドライブもDropboxもOneDriveもBoxも同じ道を通っている。Appleはこの仕組みを開発者向けの資料でこう説明している。

An extension other apps use to access files and folders managed by your app and synced with a remote storage. 出典: developer.apple.com

実務上の変化は、置き場所そのものが変わったことだ。中身は ~/Library/CloudStorage/ の下に、接続したアカウントごとの1ディレクトリとして現れる。Google ドライブなら [email protected] のような名前になる。以前の ~/Google Drive フォルダや /Volumes/GoogleDrive というマウント先はもう存在しない。iCloud Driveだけは別系統で、いまも ~/Library/Mobile Documents/com~apple~CloudDocs にある。

ここから2つのことが導かれる。1つは、~/Library はFinderで既定では隠されているため、ターミナルからは普通のパスなのに画面上は「たどり着けない場所」に感じられること。もう1つは、~/Google Drive を見に行くファイル管理アプリ、スクリプト、バックアップ設定、常駐ジョブは、いまや空を見ているということだ。Macで放置されがちな自動処理の不調は、かなりの割合がこの参照先のずれに行き着く。直すべきはパスであって、道具ではない。

ディレクトリを開ける道具なら、この場所も開ける。分かれ目は「フォルダが見えるかどうか」ではない。まだダウンロードされていない項目を、その道具がどう扱うかにある。

ストリーミングとミラーリングは、まったく別の問題を生む

Google ドライブのデスクトップアプリは、同じアカウントに対して2つの方式を選べる。ファイル管理アプリから見ると、この2つは似ても似つかない。

Streaming a file uses almost no computer space, but mirroring downloads a full copy directly to your computer. 出典: support.google.com

ストリーミングでは、ディスク上のほとんどの項目が「殻」になっている。名前も、サイズも、更新日時も本物だが、中身は入っていない。何かが読みに来た瞬間にシステムが取りに行く。Appleはこれをdataless file(実体のないファイル)と呼ぶ。ミラーリングでは、選んだファイルはすべて完全なローカルの複製になり、ディスク使用量はクラウド側と一致し、ファイル管理アプリから見ればごく普通のディレクトリになる。

ストリーミングが既定なのには理由がある。Googleアカウントの無料の保存容量は15GBで、これをドライブとGmailとフォトで分け合う。有料プランはノートパソコンの内蔵ディスクを軽く超える容量まで用意されている。共有ドライブ全体をミラーリングするのは物理的に不可能な場合が多い。だから殻の仕組みがある。ファイル管理アプリの挙動を責める前に、ここを理解しておく価値がある。

もっとも効くのはアカウント単位ではなくフォルダ単位の設定だ。デスクトップアプリは、一部のフォルダだけをミラーリングし、残りをストリーミングのままにできる。毎日触る2つか3つのディレクトリだけをミラーリングし、書庫はストリーミングに置く。それだけで、以下に挙げる症状のほとんどは消える。

スキャンが終わらない理由と、その避け方

殻は、中身を読まれた瞬間に本物のファイルになる。人が書類をダブルクリックする分には問題ない。困るのは、道具がツリー全体を歩くときだ。

次の操作は、触れたファイルの中身を実際に読む。

  • 詳細表示でのフォルダ容量の自動計算
  • 画像や動画が詰まったフォルダのサムネイル生成
  • Spotlightに問い合わせず、自前でファイルを開いて回る全文検索
  • メタデータではなく内容のハッシュで比較するバックアップ・同期ツール
  • ストリーミング中のディレクトリに対する du -sh、grep -r、find . -exec といった手癖

どれも、閲覧のつもりが一括ダウンロードに変わる。回線を埋め、ディスクを埋める。GUIのファイル管理アプリでもシェルの1行でも、やっていることは同じ「読み込み」なので、結果も同じになる。

対策は地味だが効く。クラウドのパスではフォルダ容量の自動計算を切る。ストリーミング中のツリーを探すときは grep -r ではなくSpotlightの索引を引く mdfind を使う。内容を読むタイプのバックアップからは ~/Library/CloudStorage を除外する。作業フォルダはミラーリングし、書庫はストリーミングに残す。そして、未ダウンロードのファイルの扱いを設定できるファイル管理アプリなら、最初の大規模なスキャンを走らせる前にその項目を確認しておく。

クラウドに届く4つの経路と、それぞれの代償

同じアカウントにたどり着く道は1つではない。違いは見た目ではなく構造にある。

経路 現れる場所 ローカルの複製 シェルから届くか 殻のファイルの扱い
同期アプリとFinder ~/Library/CloudStorage/ ミラーリングした分だけ 届く OS標準として対応
別のファイル管理アプリで同じパスを開く ~/Library/CloudStorage/ ミラーリングした分だけ 届く アプリの作り次第
ドライブ接続を内蔵したファイル管理アプリ 右側のペインかマウントしたボリューム 都度ダウンロード マウント中だけ 該当なし。手元に置かない
rclone などのコマンドによるマウント 指定したマウント先 キャッシュのみ 届く 該当なし

落胆が生まれるのは2行目だ。殻を普通のファイルとして扱うアプリは、プレビューの一覧を描くために動画のフォルダを丸ごと実体化しにいく。File Provider移行のあとに作られた道具は殻に触れない設計になっていることが多く、古いマウント方式を前提に設計された道具はそうなっていないことが多い。

3行目は、同期アプリを介さずGoogle ドライブと直接話すアプリだ。Cyberduck、Mountain Duck、ForkLift、Commander One、CloudMounterなどが、何らかの形でドライブ接続を用意している。手元に置かないので殻の問題は起きない。代わりに、ファイルはそのアプリの中にしか存在しないため、シェルもテキストエディタもビルドのスクリプトも届かない。ボリュームとしてマウントする機能を併せ持つ製品だけが、この制約を外せる。

どの経路でも共通してつまずく点が1つある。Google ドライブは同じフォルダに同じ名前のファイルを2つ置くことを許し、Google ドキュメントの項目は書類そのものではなく .gdoc や .gsheet の拡張子を持つ小さなリンクファイルとして現れる。ファイル管理アプリが見せているツリーは、もともとPOSIXのファイルシステムではなかったものの近似図にすぎない。

乗り換える前に確認する4点

機能の一覧表ではこの4点は判定できない。実物のフォルダで10分試すほうが早い。

未ダウンロードのファイルに触れないか

大きな動画が入ったストリーミング中のフォルダを候補のアプリで開き、プレビューが出る表示に切り替えて、通信量を見る。跳ね上がるなら、そのアプリは殻を実体化している。実体化してほしい場面もあるので、良し悪しではない。こちらが選べるかどうかが問題になる。

検索がSpotlightの索引を使うか

Spotlightはストリーミング中の項目のメタデータを、ダウンロードせずに索引化する。だから名前や種類での検索は安く済む。自前でファイルの中身を歩き回るアプリにはその性質がない。大きなドライブでは、この違いだけで検索が数秒か半日かに分かれる。

ターミナルが表示中のフォルダに追従するか

クラウドのパスは長く、アカウントのアドレスを含み、空白が混じることも多い。手で打つのは苦痛だし、打ち間違える。表示中のディレクトリをそのままシェルが引き継ぐ道具なら、この問題は丸ごと消える。追従しない道具では、操作のたびにパスの断片をコピーして貼り付ける作業が挟まる。

何がバックアップになっているか

Time Machineは ~/Library/CloudStorage を対象から外す。そしてクラウドの同期はバックアップではない。片方で消せば、もう片方からも消える。ストリーミングのフォルダにしか存在しないファイルには、ミラーリングした複製、世代を残す書庫、定期的な書き出しのいずれかを別に用意する必要がある。

同じ窓に置くという選び方と、確かめる場所

Macのクラウドファイル管理を探す人の1日は、だいたい同じ形をしている。クラウドのフォルダにファイルがあり、別の窓でシェルが同じファイルを相手にしていて、さらに別の窓でAIがそのどちらの文脈も知らないまま待っている。重いのは個々の操作ではない。同じディレクトリについて、状況を3回説明し直していることのほうだ。

そう捉えると、絞り込むべき条件はドライブ対応の有無ではなくなる。Google ドライブはもうMac上のどのアプリからも普通のパスとして見えるからだ。条件になるのは、フォルダの表示とシェルとAIが作業ディレクトリを共有しているかどうか、つまりフォルダとターミナルとAIが同じ窓にあるかどうかになる。クラウド対応をうたう道具の数に比べて、この条件を満たす道具の数はずっと少なく、1日の中での差はずっと大きい。

具体的に何ができるのかはできることにまとまっている。席を離れたあとに同じ作業の続きをどう扱うかはiPhone・iPadから続きをにある。他のファイル管理アプリと並べて条件を見比べたいときは他のファイル管理との比較を、費用の目安を先に知りたいときは料金を見ておくと、試す前に外せる候補が決まる。判断に迷う細かい点はよくある質問に集めてある。

最初に変えるべきなのは、実は道具ではない。デスクトップアプリの設定を開き、毎日触るフォルダだけをミラーリングに切り替え、残りをストリーミングのままにする。費用はかからず、容量表示のずれも、終わらないスキャンも、不意の大量ダウンロードもここでほとんど止まる。それでも残る手間が「フォルダとシェルとAIの行き来」だったときに、初めて道具を替える話になる。

よくある質問

MacのGoogle ドライブのフォルダはどこにありますか?

macOS 12.3以降は ~/Library/CloudStorage/GoogleDrive-アカウント名 の形で、サインインしたアカウントごとに1つのディレクトリとして置かれます。Finderは ~/Library を既定で隠すため、サイドバーの項目から開くか、ターミナルでパスを直接指定するのが早いです。旧来の ~/Google Drive や /Volumes/GoogleDrive はもう存在しません。

ファイル管理アプリの容量表示がクラウドの実際と合わないのはなぜですか?

ストリーミングでは大半の項目が、サイズだけ本物で中身を持たない殻になっているためです。ディスクの実使用量を出す道具は小さな値を、論理サイズを合計する道具は大きな値を表示します。どちらも不具合ではありません。そのフォルダをミラーリングに切り替えると、2つの数字は一致します。

クラウドのファイルをターミナルから扱っても問題ありませんか?

~/Library/CloudStorage 配下は普通のパスなので、cd も ls もリダイレクトも動きます。注意点は、ストリーミング中のファイルは読んだ時点でダウンロードが走ることです。大きなツリーに対する grep -r や du -sh は膨大な転送を引き起こすので、検索はSpotlightの索引を引く mdfind に寄せると安全です。

同期アプリ経由と、ファイル管理アプリからの直接接続はどちらがよいですか?

同期アプリ経由は、Mac上のすべてのアプリに普通のパスを与え、ミラーリングした分はオフラインでも編集できます。編集やスクリプトを走らせる用途に向きます。直接接続は手元に何も置かないので、大きな書庫にたまに触れる用途に向きます。両方を同じアカウントに向けることもできますが、どちらが最新かが分かりにくくなります。

記事一覧へ戻る