ダウンロードフォルダの整理の手順|最初に決めておく7つ
ダウンロードフォルダの整理の手順を調べると、たいてい「フォルダを作る」から始まります。ところが実際に続かなくなるのは、フォルダを作った後ではなく、作る前に決めていなかったことが原因です。何を合図に動かすのか、どこへ動かすのか、失敗したときにどう戻すのか。この3つが決まっていないまま自動化を組むと、1回目の事故で設定ごと捨てることになります。ここでは、後から崩れにくい順番で7段階に分けて組み立てます。どの段階も、前の段階の答えが無いと決められない形になっています。
手順1: フォルダを作る前に、いま入っているものを数える
最初にやるのは分類ではなく計測です。件数と容量と内訳が分かると、この後の判断がほとんど機械的に決まります。
ls -1 ~/Downloads | wc -l
du -sh ~/Downloads
件数が数十件なら、自動化を組む時間より手で片付けたほうが早く終わります。数百件を超えていれば、目で追う方法はもう使えません。次に内訳を見ます。
ls -1 ~/Downloads | sed -n 's/.*\.//p' | tr 'A-Z' 'a-z' | sort | uniq -c | sort -rn | head
この一覧の上位3つが、そのまま条件を書くべき対象です。多くの環境では、上位に来るのはインストーラのディスクイメージ、画面を撮った画像、書類のPDFのいずれかに寄ります。上位に来ないものを丁寧に分類しても、件数はほとんど減りません。整理の効き目は、上位に何件あるかでほぼ決まります。
容量のほうも見ておきます。件数の問題と容量の問題は別で、片付ける順番が変わるからです。
find ~/Downloads -type f -size +200M -exec ls -lh {} \; | sort -k5 -hr | head
容量を食っているのが動画やディスクイメージ10件程度で説明できるなら、分類の仕組みを組む前にそれを片付けるだけで空きは戻ります。
手順2: 触らないものを、条件より先に決める
条件を書き始める前に、動かしてはいけないものを紙に書くつもりで挙げておきます。条件を書いてから例外に気づく形にすると、すでに動かした後になります。
- ダウンロードの途中にあるファイル。ブラウザは書き終えるまで専用の拡張子を付けており、その状態で動かすと壊れる
- 接続したままのディスクイメージ。取り出す前に動かすと失敗するか、接続が切れる
- エイリアスとシンボリックリンク。本体を動かすと参照が切れる
- 他のアプリが場所を覚えているファイル。編集ソフトの素材、開発の依存物、書き出し先に指定したフォルダ
この4つに共通するのは、フォルダを見ているだけでは見分けが付かないことです。だからこそ先に挙げておきます。実務では、ダウンロードフォルダを作業フォルダとして使っているかどうかで例外の量が変わります。落としてそのまま開いて編集している使い方だと、例外が多くなりすぎて自動化が成り立ちません。その場合は、整理の仕組みを作る前に作業場所をダウンロードフォルダの外へ移すほうが早く片付きます。
例外を減らす方向で効くのが、入口を分ける形です。ブラウザの保存先だけを別のフォルダに向け、ダウンロードフォルダは他の経路の受け皿として残します。こうすると、自分で取りに行ったファイルと、送られてきたファイルがフォルダの構造として分かれます。分かれていれば、片方には強い条件を、もう片方には弱い条件を当てられます。1つのフォルダにすべてが混ざっている状態では、いちばん動かしたくないものに合わせた弱い条件しか書けません。
手順3: 行き先より先に、合図を決める
自動で動かす仕組みは、どのファイルを対象にするかを決める合図が要ります。ここでよく使われるのが変更日ですが、ダウンロードフォルダでは当てになりません。ダウンロードしたファイルの変更日は、多くの場合そのファイルが元のサーバーで最後に更新された日だからです。去年の資料を今日落とせば、変更日は去年のままになります。
使うべきなのは追加日です。そのフォルダに現れた時刻を、macOSは別に記録しています。
mdls -name kMDItemDateAdded ~/Downloads/example.pdf
条件として書くときは、索引に問い合わせる形にします。次の書き方で、追加から30日より古いものだけが並びます。末尾の数字は秒で、30日分です。
mdfind -onlyin ~/Downloads 'kMDItemDateAdded < $time.now(-2592000)'
ここを変更日で書いた仕組みは、落としたばかりの古い資料を持っていき、逆に半年放置していても一度開いて保存し直したファイルを残します。動きが分かりにくい自動整理の原因は、ほとんどがこの取り違えです。合図を1つに固定してから先へ進むと、後の工程で迷う場面が減ります。
手順4: 行き先は2つまでにする
分類を細かくしたくなりますが、最初は2つで足ります。日付の付いた保管用フォルダと、判断を保留する置き場です。
保管用は月ごとに分けます。フォルダ名に年月を入れておくと、後から探すときに「たしか春ごろ」という記憶だけでたどり着けます。中身を種類で分けないのは、分けた瞬間に「どの種類に入れたか」を思い出す作業が増えるからです。種類で探したいときは検索を使えばよく、そのために置き場所を分ける必要はありません。
保留用は、条件に合っているのに動かしてよいか判断できないものの置き場です。ここに何が溜まるかを見ると、条件の書き直しどころが分かります。保留がいつも空なら条件は十分で、保留ばかり増えるなら条件が粗すぎます。
Finderの並べ方についても、Appleの案内に基本的な考え方が載っています。
項目を名前で並べ替えると、フォルダを(アルファベット順で)常にリストの先頭に表示できます。項目をグループ化して、見つけやすくすることもできます。 出典: support.apple.com
置き場所を分けるのと、一覧の中でグループに見せるのは別の手です。後者は元に戻す必要が無いので、迷っているうちはこちらで足ります。
手順5: 動かす前に、一覧だけ出して空で走らせる
ここが省かれやすく、事故のほとんどがここを飛ばしたときに起きます。実際に動かす命令を書く前に、同じ条件で何件が対象になるかを出します。
mdfind -onlyin ~/Downloads 'kMDItemDateAdded < $time.now(-2592000)' | wc -l
件数に驚いたら条件が粗すぎます。0件なら条件の書き方が間違っています。想定どおりの件数が出たら、次は実行する命令の前に表示だけを付けて空で走らせます。
mkdir -p ~/Archive/2026-09
mdfind -onlyin ~/Downloads 'kMDItemDateAdded < $time.now(-2592000)' | while IFS= read -r f; do
echo mv "$f" ~/Archive/2026-09/
done
先頭の表示を外せば、そのまま実行になります。空打ちの段階で一覧を眺めると、動かしてはいけないものが混ざっていることに気づけます。作業中のプロジェクトの素材、他のアプリが参照しているファイル、展開済みのフォルダと対になったままの圧縮ファイル。条件を直すのはこの段階までで、実行してから直すのは手戻りになります。
手順6: 移動と削除を、別の段階に分ける
同じ仕組みの中で移動と削除を両方やらないことです。移動は行き先を見れば取り返せますが、削除はゴミ箱を空にした時点で戻せません。
現実的な形は2段階です。1段目で、追加から一定期間が過ぎたものを保管用フォルダへ移す。2段目で、保管用フォルダに入ってからさらに一定期間が過ぎたものだけを削除の候補にする。2段目は自動にせず、月に1回フォルダを開いて目で見るだけでも構いません。保管用に移した後で困らなかったという事実そのものが、消してよい根拠になります。
重複の扱いを、この段階に入れるかどうかは分けて考えます。同じファイルを2回落とすと、macOSは上書きせずに名前の末尾へ番号を足すので、内容が同じものが並びます。ただし番号が付いているほうが新しいとは限りません。落とし直した側が番号付きになるだけで、中身が更新されているかどうかは名前からは分かりません。内容で照合してから消す手はありますが、照合の処理はファイル数に比例して重くなります。移動の仕組みが安定するまでは、重複もまとめて保管用へ送り、手が空いたときにそのフォルダの中だけで見比べるほうが安全です。
削除を自動にする場合でも、直接消すのではなくゴミ箱へ入れる形にします。macOSにはゴミ箱を30日で自動的に空にする設定があるので、そこに入れておけば猶予が生まれます。この設定はシステム設定の一般にあるストレージから切り替えられます。取り返しがつく状態を1段挟むだけで、条件を強めに書けるようになります。
手順7: いつ走るかを決める
最後に実行の形を決めます。選べるのは3つで、向き不向きがはっきり分かれます。
| 走り方 | 動く条件 | 向いている場面 | 取りこぼし |
|---|---|---|---|
| 手で走らせる | 自分が実行したとき | 条件を試している間 | 走らせるのを忘れる |
| 時刻で走らせる | 指定した時刻にMacが起きている | 日次や週次の片付け | 閉じていた時刻の分 |
| 変化で走らせる | フォルダに変化があったとき | 受け取った直後に仕分けたい | 書き込み途中を掴む |
時刻で走らせるならlaunchdの定期実行が標準の道具です。ホームのライブラリにある起動エージェントの置き場に設定を1つ置き、時刻を指定します。ノート型を持ち歩く使い方なら、深夜ではなく日中の時刻にしておくほうが実行漏れが減ります。
変化で走らせる形は、Automatorのフォルダアクションが標準で用意されています。繰り返しの作業をMacに任せる仕組みとしてAppleがAutomatorユーザガイドを公開しています。ただしダウンロードフォルダは書き込みが頻繁に起きるため、変化した瞬間に動かすと書き込み途中のファイルを掴みます。対象を「追加から一定時間が経ったもの」に限れば避けられますが、その条件を書くなら時刻で走らせる形とほとんど変わりません。
自動にしたら、何を動かしたかを1行ずつ記録に残します。移動の命令の結果をファイルへ書き出しておくだけで足ります。記録が無いと、後から「あのファイルが無い」となったときに、仕組みが動かしたのか自分で消したのかを切り分けられません。切り分けられない状態が一度でも起きると、仕組みのほうを疑って止めることになります。記録は事故を防ぎませんが、事故が起きたときに元へ戻せるかどうかを決めます。
条件を試している間は、手で走らせる形のままにしておくのが安全です。自動にするのは、空打ちで想定どおりの一覧が3回続けて出てからで遅くありません。走らせる頻度も、最初は日次より週次のほうが向いています。週に1回なら、おかしな動きをしても影響を受けるのは1週間分にとどまり、記録を見れば何が起きたかをその場で追えます。
手順を決めた後に、それでも残る往復
7つの手順を決めても、作業そのものの形は変わりません。フォルダを開いて中身を見る。条件を書き直す。空で走らせて一覧を確かめる。またフォルダに戻って結果を見る。この往復が、条件が固まるまで何度も続きます。
問題は、この往復が窓をまたぐことです。一覧を見るのはファインダ、条件を書くのはターミナル、書き方を調べるのはブラウザかAIの画面。切り替えるたびに、それぞれの窓で同じフォルダを開き直します。条件を1つ直すたびにこれが起きるので、実際に時間を取られているのは判断ではなく移動のほうです。
フォルダとターミナルとAIが同じ窓にあるファイル管理アプリでは、一覧で開いているフォルダとコマンドを打つ場所が同じ場所を指します。空打ちして一覧を見て条件を直すまでが1つの窓で完結するので、条件が固まるまでの回数が同じでも、1回あたりの手数が減ります。何がどこまでできるのかはできることにまとまっています。費用の形は料金で確認できます。導入前に引っかかりやすい点はよくある質問に集めてあります。
いま決まっていないものが1つでもあるなら、そこから埋めるのが最短です。合図が決まっていないなら追加日に固定する。行き先が決まっていないなら年月のフォルダを1つ作る。順番を飛ばして自動化から始めると、直す場所が特定できなくなります。
よくある質問
追加日と変更日は、どちらで条件を書くべき?
追加日です。変更日はダウンロード元のサーバーが持っていた最終更新日になることが多く、落としたばかりの古い資料が対象に入ってしまいます。追加日はそのフォルダに現れた時刻なので、実際に放置されている期間と一致します。mdfind で kMDItemDateAdded を条件に書けます。
空打ちの段階で、何件くらいなら条件が適切と判断できる?
件数そのものより、一覧に想定外のファイルが混ざっていないかで見ます。作業中のプロジェクトの素材や、他のアプリが参照しているファイルが1件でも入っていれば条件が粗すぎます。想定どおりの一覧が3回続けて出てから自動にすると、後から直す回数が減ります。
振り分け先のフォルダは、種類ごとに作らなくてよい?
最初は年月のフォルダ1つで足ります。種類ごとに分けると、探すときに「どの種類に入れたか」を思い出す作業が増えます。種類で探したい場合は検索条件を保存する形で足りるので、置き場所まで分ける必要はありません。分けるのは、同じ種類が毎月大量に届くと分かってからで構いません。
自動削除の設定はどのタイミングで入れるべき?
移動の仕組みが安定してからです。移動先に入れた後で実際に困らなかったという事実が、消してよい根拠になります。削除を自動にする場合も直接消さずゴミ箱へ入れる形にし、ゴミ箱を30日で空にする設定と組み合わせると猶予が残ります。