Macでスクリーンショットを撮ると、デフォルトでは スクリーンショット 2026-05-07 12.34.56.png のような日本語混じりの長いファイル名になります。Slackに貼り付けるとき、Finderで並べたいとき、Gitリポジトリにコミットしたいとき——この名前は何かと邪魔です。
この記事では、シェルスクリプトと AppleScript アプリを組み合わせて、SS-20260507-123456.png のようなシンプルな形式に Dockから1クリック で一括リネームする方法を解説します。
過去にはAutomatorのフォルダアクションで自動化する方法もありましたが、macOS Sequoia (15) 以降でフォルダアクションが極めて不安定になったため、本記事ではより確実な「AppleScriptアプリ」方式を採用しています。
ゴール
Before:
スクリーンショット 2026-05-07 12.34.56.png
スクリーンショット 2026-05-07 12.34.56(2).png
After:
SS-20260507-123456.png
SS-20260507-123456(2).png
Dockに置いた Rename Screenshots.app をクリックするだけで、保存フォルダ内の対象ファイルがすべて変換されます。
1. スクリーンショットのプレフィックスを変更
まずターミナルで、スクリーンショットの先頭文字列を「SS-」に変えます。
defaults write com.apple.screencapture name "SS-"
これで SS- 2026-05-07 12.34.56.png という形式で保存されるようになります。
元に戻したい場合
defaults delete com.apple.screencapture name
2. リネームスクリプトを作成
スクリプト置き場のディレクトリを作成します(既にあれば不要)。
mkdir -p ~/Library/Scripts
~/Library/Scripts/rename-screenshot.sh に以下を保存:
#!/bin/bash
WATCH_DIR="$HOME/Documents"
cd "$WATCH_DIR" || exit 0
shopt -s nullglob
for f in "SS- "*.png; do
# 全角括弧( )を半角に正規化
normalized="${f//(/(}"
normalized="${normalized//)/)}"
# SS- YYYY-MM-DD HH.MM.SS.png または ...(n).png 形式にマッチ
if [[ "$normalized" =~ ^SS-\ ([0-9]{4})-([0-9]{2})-([0-9]{2})\ ([0-9]{2})\.([0-9]{2})\.([0-9]{2})(\ ?\(([0-9]+)\))?\.png$ ]]; then
if [[ -n "${BASH_REMATCH[8]}" ]]; then
suffix="(${BASH_REMATCH[8]})"
else
suffix=""
fi
newname="SS-${BASH_REMATCH[1]}${BASH_REMATCH[2]}${BASH_REMATCH[3]}-${BASH_REMATCH[4]}${BASH_REMATCH[5]}${BASH_REMATCH[6]}${suffix}.png"
mv -- "$f" "$newname"
fi
done
実行権限を付与:
chmod +x ~/Library/Scripts/rename-screenshot.sh
スクリプトのポイント
WATCH_DIRなスクリーンショットの保存先に合わせて変更します。デフォルトは~/Documents。デスクトップ保存なら~/Desktop。- 全角括弧の正規化なmacOSは重複時のサフィックスとして
(2)のような全角括弧を生成することがあります(特に日本語ロケール環境)。スクリプト冒頭で半角に正規化することで、出力名は常に半角(2)に統一されます。 shopt -s nullglobな対象ファイルがゼロ件のときに for ループが空回りしないようにする保険。
単体動作テスト
ターミナルから直接叩いて、リネームが行われるか確認します。
~/Library/Scripts/rename-screenshot.sh
ls ~/Documents | grep "SS-"
SS-20260507-123456.png 形式に変わっていれば成功です。
3. AppleScript でアプリ化
ターミナルを開かず、Dockから1クリックで実行できるアプリにします。
手順
スクリプトエディタを起動
Spotlight(⌘+Space)で「スクリプトエディタ」と入力して起動。以下のコードを貼り付け
do shell script "$HOME/Library/Scripts/rename-screenshot.sh"アプリとして書き出す
- メニュー:ファイル → 「書き出す...」
- 名前:
Rename Screenshots - 場所:
~/Applicationsなど - ファイルフォーマット:アプリケーション
- 「書き出す」をクリック
これで Rename Screenshots.app が完成します。ダブルクリックで実行され、Terminalウインドウは一切開きません。
Dockに登録
完成した .app をDockにドラッグ&ドロップで登録できます。スクリーンショットを撮ったらDockのアイコンを1クリックするだけで、対象フォルダ内のファイルが整った名前にリネームされます。
アイコンをカスタマイズ(任意)
デフォルトのスクリプトアイコンが気になる場合:
- Finderで
Rename Screenshots.appを選択 → ⌘+I で「情報を見る」 - 左上の小さいアイコンをクリック(青い枠が付く)
- 好きな画像(PNG/ICNS)をドラッグ&ドロップ
動作確認
- スクリーンショットを撮影(⌘+Shift+3 または ⌘+Shift+4)
- Dockの
Rename Screenshotsをクリック - 数秒後、ファイル名が
SS-20260507-123456.png形式に変わっていれば成功
トラブルシューティング
ファイル名が変わらない(スペースが残る)
macOS Sonoma 14.4 以降、スクリーンショットのファイル名で日付と時刻の間のスペースが、通常の半角スペース(U+0020)から ナロー・ノーブレークスペース(U+202F) に変更された個体があります。
確認方法:
ls ~/Documents | grep "SS-" | head -1 | xxd | head -3
e2 80 af というバイト列が含まれていれば U+202F が混入しています。その場合はスクリプトの正規化処理を以下のように拡張:
# 全角括弧の正規化に加え、特殊スペースも半角スペースに正規化
normalized="${f//(/(}"
normalized="${normalized//)/)}"
normalized=$(printf '%s' "$normalized" | LC_ALL=C sed ___PRE_BLOCK_10___#39;s/\xe2\x80\xaf/ /g; s/\xc2\xa0/ /g')
ファイル名が「SS--.png」になる
シェルが /bin/zsh で実行されている可能性があります。スクリプト先頭の shebang が #!/bin/bash になっていることを確認してください。BASH_REMATCH はbash専用の機能で、zshでは動作しません。
Automator のフォルダアクションが反応しない
旧版の記事ではフォルダアクションを使っていましたが、macOS Sequoia (15) 以降は再アタッチしても次回再起動で外れる、サービスメニューに「フォルダアクション設定」が出ないなど、不具合報告が多数あります。本記事の AppleScript アプリ方式に切り替えるのが最も確実です。
なぜAutomatorではなくAppleScriptアプリなのか
| 方式 | 自動化 | 安定性 | セットアップの簡単さ |
|---|---|---|---|
| Automator フォルダアクション | ◎ | ✕(Sequoia以降不安定) | ○ |
| launchd + WatchPaths | ◎ | ◎ | △(CLI必須) |
| AppleScript アプリ(本記事) | △(手動トリガー) | ◎ | ◎ |
「常に自動で動いてほしい」より「気が向いたときに整理したい」運用なら、AppleScriptアプリが最も確実でシンプルです。Dockにアイコンが居座り続けることで、整理の習慣化にもつながります。
まとめ
defaults write com.apple.screencapture name "SS-"でプレフィックス変更- シェルスクリプトで
SS-YYYYMMDD-HHMMSS.png形式に変換(全角括弧・重複サフィックスにも対応) - AppleScriptアプリ化してDockから1クリック実行
- macOS Sequoia以降でも安定して動作
Rename Screenshots.app をDockに置いてしまえば、煩雑なスクリーンショットのファイル名がスッキリ整理できます。

