mac ダウンロードフォルダ場所と、そこに来ないファイルの行方

20分前に落としたはずのファイルが、ダウンロードフォルダの一番上に無い。スクロールしていくと、6月に落としたインストーラと、数字の羅列みたいな名前のPDFの間に挟まっている。同じフォルダには、同じ添付ファイルの重複が3つ、一度マウントしただけのディスクイメージ、展開済みのフォルダと並んだzipが残ったままです。mac ダウンロードフォルダ場所と調べる人の多くは、フォルダの位置そのものは知っています。知りたいのは、なぜ落としたファイルがそこに無いことがあるのか、なぜ並べ替えが当てにならないのか、そして何を変えればこのフォルダが物置に戻らないのかです。

場所は決まっている。決まっていないのは誰が書くか

ダウンロードフォルダの場所は ~/Downloads で、実体は /Users/ユーザ名/Downloads です。ユーザーアカウントごとに作られ、ファインダのサイドバーに最初から並び、Dockの右側にスタックとして置かれています。ここは動きません。

動くのは、そこに何が入るかです。ダウンロードを扱うアプリは、それぞれ自分で保存先を決めています。

入手経路 初期の保存先 変更する場所
Safari ~/Downloads Safari、設定、一般、ファイルのダウンロード先
Chrome ~/Downloads 設定、ダウンロード。毎回確認する設定もある
Firefox ~/Downloads 設定、一般、ダウンロード
メールの添付 ~/Downloads メール、設定、一般、ダウンロードフォルダ
AirDrop ~/Downloads 変更できない
メッセージの添付 メッセージのライブラリ内 手動で「別名で保存」
App Store アプリケーションに直接 変更できない

この表で見てほしいのは各パスではなく、ダウンロードフォルダが規則ではなく初期値にすぎないという点です。フォルダに無いファイルは、保存ダイアログで最後に使ったフォルダに入っていることがよくあります。ブラウザで「毎回保存先を確認する」を有効にしていると、その確認の初期値はダウンロードフォルダではなく前回の場所になるため、気づかないうちに散らばります。

Safariにはもう1つ知っておきたい挙動があります。ダウンロードの一覧はブラウザが持っている記録で、フォルダの中身を映したものではありません。一覧を消してもファイルは消えず、逆にファイルを移動すると一覧からはたどれなくなります。同じ案内には次の記述もあります。

以前にダウンロードした項目をダウンロードすると、Safariは古い方の重複項目を削除し、お使いのMacの領域を消費しないようにします。 出典: support.apple.com

同じファイルを落とし直したとき、前のものが静かに消えているのはこの動きによるものです。

並べ替えが当てにならない理由

フォルダを開いて変更日で並べる。これが反射的な操作ですが、ダウンロードフォルダではほとんど役に立ちません。ダウンロードしたファイルの変更日は、多くの場合サーバー側が持っていた最終更新日です。数年前の資料を今日落とせば、日付は当時のままで、一覧の真ん中に埋もれます。

実際に知りたいことに答える項目は追加日です。macOSは、ファイルがそのフォルダに現れた時刻を別に記録しています。ファインダなら、フォルダを開いて表示メニューから「表示オプションを表示」を選び、追加日にチェックを入れてその列で並べ替えます。リスト表示なら、列見出しをControlキーを押しながらクリックしても追加できます。

シェルからは索引の項目として同じ値を読めます。

mdls -name kMDItemDateAdded ~/Downloads/somefile.pdf

もう1つ、名前が手がかりにならないファイルに効く項目があります。kMDItemWhereFroms には、そのファイルを取得したURLが入っています。

mdls -name kMDItemWhereFroms ~/Downloads/report-final-2.pdf

開いて中身を確かめるより速いことが多く、ファインダでも情報ウインドウに同じ値が出ます。さらに、フォルダを絞って出どころで検索すれば、名前が何であれ特定のサイトから来たファイルをまとめて拾えます。

mdfind -onlyin ~/Downloads 'kMDItemWhereFroms == "*github*"c'

末尾の c は大文字小文字を区別しない指定です。「先週の火曜に落としたやつ」を探すとき、人が本当にやりたいのはこの検索です。名前を思い出す作業から降りられます。

追加日と変更日を取り違えたままだと、整理の判断まで狂います。たとえば「3か月より古いものを保管に回す」と決めたとき、変更日で絞ると、昨日落としたばかりの古い資料まで対象に入ります。逆に、中身を編集したファイルは変更日が今日になるため、実際には半年前から放置されているのに残り続けます。ダウンロードフォルダを扱うときは、並べ替えも絞り込みも追加日に統一する。これだけで、判断の材料がずれる場面がほとんど無くなります。

たまるのはファイルではなく残りかす

ダウンロードフォルダの容量を食っているものの多くは、落としたファイル本体ではなく、その副産物です。

  • 同名のファイルは置き換わらず、番号が付く。同じ請求書を2回落とせば、statement.pdf と statement-1.pdf が並び、どちらが新しいか名前からは分からない。追加日で並べれば到着順だけは分かる
  • zipは二重になる。Safariはダウンロード後に安全とみなした書類の圧縮を解く設定があり、有効なままだと展開後のフォルダと元のzipが両方残る。設定は一般の「ダウンロード後、"安全な"ファイルを開く」で切り替えられる
  • ディスクイメージは開いたまま残る。一度マウントした .dmg は、取り出すか再起動するまでボリュームとして接続され続ける。接続中のものは /Volumes の下に見える

3つ目は次の2行で確認して外せます。

ls /Volumes
hdiutil detach /Volumes/SomeApp

この3種類を片付けるだけで、書類を1つも消さずにフォルダがかなり軽くなります。どれも「まだ要るかどうか」の判断が要らない対象なので、迷う時間もかかりません。整理を始めても手が止まりやすいのは、1つずつ中身を確かめて残すかどうかを決めようとするからです。判断の要らないものを先に全部落とすと、残った分は数十件程度に収まり、そこからは目で追えます。

zipの扱いだけは好みが分かれます。自動で展開する設定を切れば、フォルダに何が存在するかは常にはっきりしますが、展開の操作が毎回1手増えます。有効のままにするなら、中身を確認したあとに元のzipを消す手順を決めておく。どちらを選ぶにしても、決めずに使い続けると同じ内容が2つ並んだ状態が積み上がります。

検疫の印と、開けないファイル

ネットワーク越しに来たファイルには com.apple.quarantine という拡張属性が付きます。「インターネットからダウンロードされました」という警告や、アプリを初回に開くときの確認は、この印がきっかけです。安全なアプリの開き方についてはAppleのサポート文書に説明があります。

実務で効いてくる点が2つあります。1つは、印はファイルについて回るということです。ダウンロードフォルダからアプリケーションへ移しても消えず、初回起動時の確認は出ます。もう1つは、シェルから見えて外せることです。

xattr -p com.apple.quarantine ~/Downloads/tool.dmg
xattr -d com.apple.quarantine ~/Downloads/tool.dmg

外すのは、出どころが分かっているファイルに対して意識的に行う操作にとどめるのが安全です。この印は、ファイルを開く瞬間に出どころを見えるようにするためのもので、反射で消す運用にすると、自分で取りに行ったファイルと勝手に届いたファイルの区別が付かなくなります。

開発の場面ではもう1つ形を変えて現れます。ブラウザ経由で取ってきたスクリプトやライブラリ、フォント、プラグインの類は印を持ったままプロジェクトに入り、読み込む側が理由を説明しないエラーで止まることがあります。見た目に問題のないファイルが理由不明で弾かれたら、xattr -l で印の有無を先に確かめると切り分けが速くなります。

物置に戻さないための3つの型

macOSはダウンロードフォルダを自動では掃除しません。システム設定の一般にあるストレージでは、ゴミ箱を30日で自動的に空にする設定や、容量の大きいファイルの案内は用意されていますが、ダウンロードを期限で片付ける仕組みは含まれていません。放っておけば、ホームの中でいちばん大きく、いちばん開くのが遅いフォルダになります。

型は3つあり、違うのは準備の量です。

手で仕分ける

追加日で並べ替え、ある日付より下をまとめて選んで一度に判断します。数分で終わり、何も入れずに始められます。ただし2回か3回で続かなくなります。続けるコツは「フォルダがいっぱいになったら」ではなく曜日を決めることです。フォルダはいつでもいっぱいに感じるため、感覚を合図にすると合図として働きません。

入口を分ける

ブラウザの保存先をダウンロードフォルダ以外にして、ダウンロードフォルダはそれ以外の受け皿として残します。ホームの下に受信用のフォルダを1つ作り、ブラウザ専用にする。この形にすると、「自分で取りに行ったもの」と「届いたもの」の区別が、記憶ではなくフォルダの構造として残ります。

自動で流す

フォルダアクションや定期実行のスクリプトで、一定日数より古いものを保管用フォルダへ移します。シェルなら短い命令で済みますが、使いものになる版は変更日ではなく追加日で絞る必要があり、find -mtime ではなく索引に問い合わせる形になります。ネット上の1行スクリプトが違うファイルを動かしてしまうのは、たいていこの違いが理由です。どの型を選ぶにしても、最初のうちは削除ではなく移動にしておきます。保管用フォルダは容量を食うだけで、やり直しがきくからです。自動整理が続かなくなる原因は取りこぼしではなく、1回だけまだ必要だったものを持っていかれて、そこで止めてしまうことにあります。

残るのは、窓を行き来する時間

ここまでの3つの型は、最後に同じ形に行き着きます。ファインダでフォルダを見る。何かを決める。ターミナルに切り替えて、決めた内容をコマンドで書く。ファインダに戻って結果を見る。ファイルが1時間に何度も増えるフォルダで、この往復が延々と続きます。しかも切り替えるたびに、対象のフォルダをそれぞれの窓で開き直すことになります。

道具が足りないわけではありません。足りないのは、同じ現在地を共有した状態です。フォルダとターミナルとAIが同じ窓にあるファイル管理アプリでは、一覧で見ているフォルダとコマンドを打つ場所が同じ場所を指します。出どころを調べる、追加日でまとめて移す、結果を目で確かめる、という一連の作業が窓を替えずに終わります。具体的に何ができるのかはできることにまとまっています。ファインダと別のターミナルを並べる形や、他の選択肢との違いは他のファイル管理との比較、費用は料金で確認できます。導入前に引っかかりやすい点はよくある質問にまとめてあります。

まず変えるとよいのは1点です。ダウンロードフォルダの表示オプションで追加日を出して、その列で並べ替える。ダウンロードにまつわる混乱のかなりの部分は、実は並べ替えの問題が別の顔をして出てきているだけです。それでも整理のたびにファイルを見る窓とコマンドを打つ窓を行き来しているなら、直すべきなのはフォルダではなく道具の側です。

よくある質問

ダウンロードしたのにフォルダに無いのはなぜ?

保存先を決めているのはダウンロードしたアプリ側だからです。ブラウザで毎回保存先を確認する設定にしていると、初期値は前回使ったフォルダになります。メッセージの添付はライブラリ内に置かれ、App Storeのアプリはアプリケーションへ直接入ります。ディスク全体を探す前に、そのアプリの設定を確認してください。

ダウンロードフォルダを外付けドライブに移してもよい?

フォルダ自体は移せますが、書き込む側のアプリを1つずつ新しい場所に向け直す必要があります。ドライブを外している間に書き込みが起きると、失敗するかローカルに同名のフォルダが作り直されます。フォルダを動かすより、アプリごとに保存先を変えるほうが予測しやすい形です。

ダウンロードフォルダはiCloud Driveで同期される?

されません。iCloud Driveのフォルダ同期の対象はデスクトップと書類だけで、ダウンロードフォルダは各Macのローカルに残ります。iCloud Driveを有効にしていても、片方のMacで落としたファイルがもう1台に現れないのはこのためです。

ファイル名から中身が分からないとき、出どころを調べる方法は?

macOSはファイルの取得元URLをメタデータとして保存しています。ターミナルで mdls -name kMDItemWhereFroms をそのファイルに実行すると、どこから来たかが表示されます。ファインダでファイルを選び、情報ウインドウを開いても同じ情報を確認できます。

記事一覧へ戻る