mac ファイル整理自動|任せる判断と、手で決める判断の線引き

mac ファイル整理自動と調べると、規則を書く道具の名前がいくつも並びます。ところが道具を入れた翌週には、フォルダが元の散らかり方に戻っていることが多い。原因は道具選びではなく、何を機械に任せて何を自分で決めるのかを切り分けないまま規則を書き始めた点にあります。ここでは、macOSに最初から入っている自動化の入口の違い、任せてよい判断の境目、そして規則が壊れる場所を順に見ていきます。

「自動」という言葉が、3通りの意味で使われている

自動整理の話がかみ合わないのは、同じ言葉で違うものを指しているからです。実際に語られている中身は、おおむね3つに分かれます。

  • 見え方だけを変える自動化。ファイルは動かさず、条件に合うものを一覧に集める。スマートフォルダがこれにあたる
  • 置き場所を変える自動化。条件に合うファイルを別のフォルダへ移す、名前を付け替える、消す
  • 作業そのものを流す自動化。書き出し、変換、圧縮、アップロードまでを続けて走らせる

このうち事故が起きるのは2つ目だけです。1つ目は表示の話なので、間違えても元に戻す作業が発生しません。3つ目は出力先が決まっているので、失敗しても入力側は残ります。置き場所を変える自動化だけが、間違えたときに「どこへ行ったか分からないファイル」を生みます。整理の自動化に手を出して痛い目を見た経験がある場合、その原因はほぼ2つ目に集中しています。

順番としては、まず1つ目で現状を可視化し、動かす対象がはっきりしてから2つ目に進むほうが安全です。いきなり移動の規則を書くと、対象の見積もりが甘いまま数百件が動きます。

規則を書く前に、散らかり方を数える

自動整理の相談で最初に抜けているのは、対象の件数です。何件を相手にしているのかを知らないまま規則を書くと、想定と違う規模で動いたときに気づけません。数え方は表示を変えるだけで足ります。

Finderなら、対象のフォルダを開いてcommand + 2でリスト表示にし、command + Jで表示オプションを開いて追加日を出します。その列で並べ替えれば、いつからここに積み上がっているのかが一目で分かります。上のほうに今週のファイルが数件、その下に半年前からの層が延々と続いている、という形になっていれば、規則が相手にすべきなのは下の層です。

容量の側から見るなら、主要なフォルダの合計を一度に出す形が手早い方法です。

du -sh ~/Downloads ~/Documents ~/Desktop

数えてみると、思っていた分布と違うことがよくあります。整理したいと感じていたのは画像なのに、容量を食っていたのは書き出した動画の中間ファイルだった、という具合です。規則は件数と容量の多いところから書くほうが効きます。5件のために書いた規則は、書く時間のほうが長くつきます。

macOSに最初から入っている4つの入口

追加のアプリを買う前に、標準で使える範囲を知っておくと判断が速くなります。

入口 何ができるか 起動の仕方 向いている用途
スマートフォルダ 条件に合うファイルを集めて表示する。実体は動かない Finderで option + command + N 現状の可視化、点検の入口
ショートカット アクションを並べて処理を組む。フォルダの監視も設定できる アプリケーションのショートカット 決まった変換や移動の型
Automatorのフォルダアクション 指定フォルダにファイルが入った時点で処理を走らせる Automatorで新規ワークフロー 受け皿フォルダの自動仕分け
シェルとlaunchd 条件の書き方が最も自由。定期実行も担当できる ターミナル 複雑な条件、大量件数

Automatorは、処理の部品を並べて1つの流れを作る仕組みです。

Automatorワークフローを作成するには、作成したいワークフローのタイプを選択してから、そのワークフローにアクションを追加します。 出典: support.apple.com

この4つは競合しません。可視化はスマートフォルダ、受け皿の仕分けはフォルダアクション、まとめて処理する日はシェル、という具合に役割で分けられます。市販の整理アプリの多くは、この2番目と3番目を分かりやすい画面に載せ直したものだと考えると、追加で払う費用が何に対するものかを見積もりやすくなります。

機械に任せてよい判断と、手で決めるしかない判断

自動化が続かない理由の大半は、任せる範囲を広げすぎたことにあります。判断は次のように分かれます。

機械が正しく答えられるのは、ファイル自身が答えを持っている問いです。拡張子は何か、いつ追加されたか、容量はいくつか、どのURLから来たか、どのフォルダに入っているか。これらは書かれている情報を読むだけなので、間違えようがありません。

機械が答えられないのは、ファイルの外にしか答えがない問いです。この見積書はどの案件のものか、この画像は差し替え前か後か、この資料はもう使わないのか。人が決めた文脈を知らなければ判定できないため、規則を書いた本人の頭の中にしかない情報を、ファイル名やフォルダ名の形で外に出しておく作業が先に要ります。

つまり自動化の準備とは、規則を書くことではなく、判断材料をファイル側に載せることです。案件名を頭に付けた命名にする、受け取ったものと自分で作ったものでフォルダを分ける、書き出したファイルは決まった場所に置く。この下ごしらえが済んでいれば、規則は短くて済みます。済んでいないまま規則を長くしていくと、例外が例外を呼んで、20行を超えたあたりで手に負えなくなります。

判断材料をファイルに載せる方法は、大きく3つあります。名前に埋め込む形、置き場所で表す形、タグやコメントのようなメタデータに持たせる形です。名前に埋め込む形は、ターミナルからも他のアプリからも同じように読めるため、規則から扱いやすい形になります。置き場所で表す形は人が見て分かりやすい代わりに、階層が深くなると規則の条件も長くなります。タグは色分けで一覧性が上がりますが、外部のディスクに移したときやZIPで渡したときに落ちるため、規則の根拠にするなら覚悟が要ります。

現実的な落としどころは、名前の先頭に日付、その後ろに案件を表す短い語を置く形です。この2つが入っているだけで、期間で絞る条件と案件で絞る条件の両方がファイル名だけで書けます。中身を読む処理を挟まずに済むため、規則の実行も速く終わります。

規則が壊れるのは、たいてい同じ3か所

書いた規則が想定外の動きをする場面は、驚くほど共通しています。

  • 同じ名前のファイルが移動先にあったとき。上書きするのか、番号を足すのか、止まるのかは道具ごとに違います。Finderで同名フォルダを重ねたときは結合か置き換えかを選べますが、コマンドで書いた場合の既定はほぼ上書きです
  • 移動先のフォルダが存在しないとき。年ごとのフォルダへ振り分ける規則は、年が変わった最初の1回で止まります。フォルダを先に作る一手を入れておくと防げます
  • 対象のファイルを別のアプリが開いているとき。書き出し中のファイルを途中で持っていくと、壊れた状態で保存されることがあります。フォルダアクションのように到着と同時に走る型では、少し待ってから処理する形にしておくのが無難です

もう1つ見落としやすいのが、変更日と追加日の違いです。ネットから取得したファイルの変更日は、多くの場合サーバー側が持っていた最終更新日で、手元に来た日ではありません。find -mtime で日数を絞る一行が意図しないファイルを動かすのは、ほぼこの取り違えが理由です。macOSはファイルがそのフォルダに現れた時刻を別に記録しているので、そちらを見ます。

mdls -name kMDItemDateAdded ~/Downloads/example.pdf
mdfind -onlyin ~/Downloads 'kMDItemDateAdded < $time.today(-30)'

動かす前に決めておく4つのこと

自動化を始める日に決めておくと、後戻りが減る項目があります。

  • 削除ではなく移動にする。保管用のフォルダを1つ作り、規則の行き先はそこに固定します。容量を食うだけで、判断を間違えても取り返せます
  • 対象を狭く始める。最初の規則が扱う範囲は1つのフォルダ、1つの拡張子に絞ります。範囲を広げるのは、その規則が1か月動いて問題が出なかった後で構いません
  • 走った記録を残す。何をどこへ動かしたかを1行ずつファイルに書き足しておくと、行方不明の捜索が数秒で終わります
  • 止め方を先に用意する。フォルダアクションは設定画面から外し、launchdは読み込みを解除します。止め方を知らない自動化は、動き始めた瞬間に不安の種になります

期間の目安としては、規則を1つ足したら2週間は次を足さないほうが安全です。同時に3つ足すと、想定と違う動きが出たときにどれが原因かを切り分けられなくなります。

出口で分けるより、入口で分けるほうが規則は短くなる

同じ結果を目指しても、規則の書き方には2通りあります。1つは、散らかったフォルダを後から仕分ける出口側の自動化。もう1つは、そもそも別の場所に届くようにする入口側の設計です。

出口側は条件が増え続けます。ダウンロードフォルダに来るものは、ブラウザから取ったファイル、メールの添付、AirDropで受け取ったもの、書き出しの出力が混ざっているため、拡張子だけでは仕分けられません。請求書のPDFと仕様書のPDFを同じ規則で扱えないので、例外が増えていきます。

入口側は設定を変えるだけで済みます。ブラウザの保存先をダウンロードフォルダ以外にする。書き出し用のフォルダを1つ決めて、書き出しの保存先はそこに固定する。受け取ったものと自分で作ったものが最初から別の場所に入れば、後から仕分ける規則の半分は不要になります。

自動整理の規則が長くなってきたら、その規則が出口側を直そうとしていないかを疑ってみる価値があります。30行の規則より、保存先の設定を1か所変えるほうが効くことは珍しくありません。

散らかりの発生源は、だいたい2か所に集中している

規則をどこから書くかで迷ったときは、ファイルが増えている場所を数えるのが早道です。実際に手を動かして数えてみると、散らかりの大半は決まった入口から入ってきています。

1つ目は受信です。ブラウザからのダウンロード、メールの添付、AirDropで受け取ったもの、共有リンクから落とした資料。行き先はほとんどがダウンロードフォルダです。2つ目は生成です。スクリーンショット、書き出した画像や動画、変換して作った中間ファイル。こちらの既定の行き先はデスクトップになっていることが多く、画面が埋まる直接の原因になります。

この2か所に絞るだけで、規則の数はかなり減ります。生成側は、そもそも出す場所を変えるのが最短です。スクリーンショットはshift + command + 5で開く画面のオプションから保存先を選べるので、デスクトップ以外の場所に向けておけば、あとから動かす規則そのものが不要になります。受信側は種類が混ざるので、届いたものを一時的に受ける場所と、判断が済んだものを置く場所を分けるところから始めます。

数え方は難しくありません。ターミナルで対象のフォルダの中身を種類ごとに数えると、どの拡張子が多いのかが分かります。

ls ~/Downloads | sed 's/.*\.//' | sort | uniq -c | sort -rn | head

この結果を見てから、上位の3種類にだけ規則を当てると、費用対効果が高い順に片づきます。全部の拡張子を網羅しようとすると、めったに出てこない形式のために例外が増えるだけです。

AIに任せる部分と、任せない部分

近年は、ファイルの中身を読んで名前や分類の案を出す仕組みが手に入るようになりました。これまで機械が答えられなかった「このファイルはどの案件のものか」という問いに、ある程度まで答えが返ってきます。

有効なのは、名前を提案させる使い方です。中身の先頭を読んで、日付と発行元と書類の種類を含む名前を作る。人が付けるより表記の揺れが少なく、大量のファイルに同じ形式を当てられます。分類の候補を出させる使い方も現実的で、既存のフォルダ名の一覧を渡したうえで「この中のどれに近いか」を答えさせる形にすると、勝手に新しいフォルダが増えるのを防げます。

任せないほうがよいのは、提案をそのまま実行につなげる部分です。読み取りを間違えても、移動が終わってしまえば気づきません。提案を一覧で受け取り、承認したものだけが動く形にしておくと、速さを保ったまま取り返しがつきます。この形は、前の節で挙げた「削除ではなく移動にする」「記録を残す」という決め事とそのままつながります。

自動化しても残る、確認のための往復

規則が動き始めてからも、時間を食う作業が1つ残ります。規則が正しく動いたかどうかの確認です。

一覧を開いて件数を見る。ターミナルに切り替えて、動いたファイルの一覧を出す。もう一度一覧に戻って、残っているものを目で確かめる。規則を1つ直すたびに、この往復が繰り返されます。しかも切り替えるたびに、対象のフォルダをそれぞれの窓で開き直すことになります。自動化のために書いた時間より、確認のために切り替えた時間のほうが長かった、という状態は珍しくありません。

足りないのは道具ではなく、同じ現在地を共有した状態です。フォルダとターミナルとAIが同じ窓にあるファイル管理アプリでは、一覧で見ているフォルダと命令を打つ場所が同じ場所を指します。条件を試す、結果を目で確かめる、規則を直す、という往復が窓を替えずに終わります。何ができるのかはできることに整理されています。処理を走らせたまま席を外したいときの続きの扱いはiPhone・iPadから続きを、Finderと別のターミナルを並べる形との違いは他のファイル管理との比較で確認できます。費用は料金、導入前に引っかかりやすい点はよくある質問にまとまっています。

最初に手を付けるなら、移動の規則ではなくスマートフォルダです。動かす前に、動かす対象が何件あるのかを見る。自動整理でつまずく人の多くは、この見積もりを飛ばして規則を書き始めています。

よくある質問

ファイル整理の自動化は、どの道具から始めるとよいですか?

最初はFinderのスマートフォルダを勧めます。option + command + Nで作れて、条件に合うファイルを集めて表示するだけなのでファイルは動きません。対象が何件あるかを見てから移動の規則に進むと、想定外の件数が動く事故を避けられます。移動を伴う自動化はその次の段階です。

追加のアプリを買わずに、標準機能だけでどこまでできますか?

受け皿フォルダの仕分けはAutomatorのフォルダアクション、決まった変換や移動はショートカット、複雑な条件と大量件数はシェルとlaunchdで扱えます。市販の整理アプリは主にこの範囲を扱いやすい画面に載せ直したものなので、先に標準機能で試すと必要な機能が具体的になります。

自動整理でファイルが行方不明になるのを防ぐには?

規則の行き先を削除ではなく保管用フォルダへの移動にして、何をどこへ動かしたかの記録を1行ずつ残します。対象は1つのフォルダと1つの拡張子から始め、規則を足すのは前の規則が数週間問題なく動いた後にすると、原因の切り分けが楽になります。

日数でファイルを絞る規則が、違うファイルを動かしてしまいます。

変更日で絞っているのが原因です。ネットから取得したファイルの変更日はサーバー側の最終更新日であることが多く、手元に来た日とは違います。macOSが別に記録している追加日を使い、mdfindやmdlsでkMDItemDateAddedを条件にすると意図した範囲に収まります。

記事一覧へ戻る