◉CLAUDE LABEN
●2.1.295 — hook に onFailure: "block" が追加。起動失敗や想定外の終了でも通さず止められます●SONNET 4.5 — Claude API での提供終了は 11/30、残り52日。移行先は Sonnet 5.5●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●Q&A — 同じコネクタを別アカウントで併用したい、という問いが出ています●API CACHE — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に値下げ(10/07)●NEW — 毎回読ませる指示ファイルを半分にする前に、残す・移す・消すを分ける●2.1.295 — hook に onFailure: "block" が追加。起動失敗や想定外の終了でも通さず止められます●SONNET 4.5 — Claude API での提供終了は 11/30、残り52日。移行先は Sonnet 5.5●HAIKU 5.5 — Haiku 4.5 向けコードは budget_tokens が 400 エラーになる点に注意●Q&A — 同じコネクタを別アカウントで併用したい、という問いが出ています●API CACHE — Sonnet 5.5 のキャッシュ読み取りが $0.10/Mtok に値下げ(10/07)●NEW — 毎回読ませる指示ファイルを半分にする前に、残す・移す・消すを分ける
記事一覧/Cowork
◈ Cowork/2026-06-21上級

Cowork の bash が『ファイルがありません』と言うのに Finder には見える理由

クラウド同期フォルダを Cowork に接続すると、bash からは実体のないプレースホルダが見え、cat が失敗します。オンデマンド実体化の仕組みと、自動化を取りこぼさないための設計パターンを実体験から解説します。

Cowork43automation55Dropboxクラウド同期bash5ファイル管理スケジュールタスク25

✦ プレミアム記事

Cowork の自動タスクで、こんな矛盾に出くわしたことはないでしょうか。スケジュール実行のログには cat: settings.json: No such file or directory と出ているのに、同じファイルを Finder で開くと中身がちゃんと表示される。フォルダを接続したはずなのに、bash からだけファイルが「無い」ことになっている——この食い違いは、環境の不具合ではなく、クラウド同期フォルダの仕組みがそのまま表面化したものです。

私自身、個人開発の自動化を Cowork のスケジュールタスクに任せるようになってから、この「見えているのに読めない」現象を何度か踏みました。原因が分かってしまえば対処は単純ですが、知らないと「タスクが無音で失敗する」という一番やっかいな形で現れます。ここでは、なぜ起きるのかを腑分けしたうえで、自動化が取りこぼさないための設計パターンまで落とし込みます。私はこの順番——入力源と作業領域を分け、触れてから処理する——を守るようになってから、無人タスクの不発がほぼなくなりました。

クラウド同期は「実体のないファイル」を置く

Dropbox・iCloud Drive・OneDrive などのクラウド同期は、ディスク容量を節約するために「オンデマンド実体化(on-demand materialization)」という仕組みを持っています。フォルダの一覧には全ファイルが並んでいるように見えますが、実体(中身のバイト列)はクラウド側にしかなく、ローカルにはメタデータだけのプレースホルダが置かれている状態が普通にあります。

ここで Cowork の構造が効いてきます。Cowork の bash はサンドボックス化された Linux 環境で、接続フォルダをマウント経由で参照します。bash が見ているのは「ディスク上に実体としてあるバイト列」だけです。プレースホルダはディレクトリ一覧(ls)には現れますが、cat で中身を読もうとした瞬間に実体がないので失敗します。一方、Cowork の file ツール(Read など)は、読み取り要求をきっかけにクラウドからの実体ダウンロードを引き起こします。つまり同じパスでも、bash は実体を要求できず、file ツールは要求できるという非対称があるのです。

「Finder には見えるのに bash には無い」の正体はこれです。Finder(や同期クライアント)はプレースホルダを開いた瞬間にダウンロードを走らせますが、bash の cat はそのトリガーを持っていません。

症状を3つに切り分ける

「読めない」とひとくくりにせず、まず実体の状態を3つに分けて観測すると、対処が決まります。

F="/sessions/xxx/mnt/Workspace/settings.json"
 
# 1. 一覧には出るか(メタデータの有無)
ls -la "$F"        # 出る = プレースホルダは存在
 
# 2. 実体のバイト数はあるか
stat -c '%s bytes' "$F" 2>/dev/null || echo "stat failed"
 
# 3. 実際に読めるか
head -c 16 "$F" 2>&1 | head -1

観測される典型は次の3パターンです。

状態lsstat のサイズcat / head意味
実体なし出る失敗 or 0No such file / I/O error未ダウンロードのプレースホルダ
0 バイト出る0空が返る同期途中・実体化失敗
古い実体出る正の値読めるが内容が古い別端末の更新が未反映

3つ目の「古い実体」が一番こわい症状です。cat は成功し、エラーも出ないのに、内容が最新ではない。自動化はエラーがないと「成功した」と判断してそのまま進むので、古いデータで動いた結果が静かに積み上がります。件数チェックや整合性チェックを後段に置くべき理由はここにあります。

✦

ここまでお読みいただきありがとうございます。

この記事の続きを読む

この先には、実装コードやベンチマーク結果など、実務でお役に立てる内容をご用意しています。このサイトは広告を掲載しておらず、サーバーや開発にかかる費用はメンバーの皆様のご支援で成り立っています。もしお役に立てていましたら、ご支援いただけますと大変ありがたいです。

この記事で得られること
✦bash サンドボックスが「実体のあるファイル」しか読めない理由と、クラウド同期のオンデマンド実体化の挙動を切り分ける手順
✦bash の VM パスと file ツールのパスが別物であることを前提にした、materialize-before-process の設計パターンと Before/After コード
✦どの読み方(bash 直読み / file ツール経由 / スクラッチへコピー)を選ぶかの判断表と、取りこぼしを件数・ハッシュで事後検証する方法
Stripe による安全な決済 · いつでもキャンセル可能
✦

この記事を購入する

この先の内容をすべてお読みいただけます。一度のご購入で、いつでも何度でもアクセスできます。このサイトは広告を掲載しておらず、皆さまのご支援がサーバー費用などの運営を支えています。

または
メンバーシップなら全記事が読み放題 →
シェア

お読みいただきありがとうございます

Claude Lab は広告なしで運営しており、サーバー費用などの運営コストはメンバーシップのご支援で賄っています。実装コード・ベンチマーク・本番設計パターンなど、実務でお役立ていただける記事を毎日更新しています。もし読んでよかったと感じていただけましたら、ぜひご覧ください。

  • ✦コピー&ペーストで使える実装コード付き
  • ✦毎日新しい上級ガイドを追加
  • ✦¥580/月 または ¥2,480 の永久アクセス
メンバーシップを見る →

関連記事

◈ Cowork2026-10-01
定期タスクの手順書を削る前に、その一冊が何回読み直されるかを数えました
前読みの手順書を13KB削った見積もりは、再読込で数え直すと呼び出し約1.3回ぶんでした。削る前に何回読み直されるかを数える台帳と、実行中に読み込み量を残す関数をお伝えします。
◈ Cowork2026-09-24
Cowork の定期タスクは、来週の土曜にも動きますか
一度で止まる定義、1本に詰めた二つの時刻、書き換えで空いた曜日。Cowork のスケジュールタスクは、ログに何も残さないまま欠けることがあります。定義を台帳に書き写し、意図と突き合わせる点検スクリプトを動くコードでまとめました。
◈ Cowork2026-09-18
Cowork と Claude Code のどちらに置くかを、承認の挟まり方で決めています
同じ Claude が動く Cowork と Claude Code を、機能の比較ではなく「途中で人の承認が挟まってよいか」で置き分けている基準と、無人の面に残す書き方を実例つきでお伝えします。
📚RECOMMENDED BOOKS
大規模言語モデル入門
山田育矢
LLM開発
生成AIプロンプトエンジニアリング入門
我妻幸長
プロンプト
Claude CodeによるAI駆動開発入門
平川知秀
AI駆動開発
※ アフィリエイトリンクを含みます