スクリーンショットは接頭辞しか変えられない

macOSで保存したスクリーンショットはファイル名が接頭辞 + スペース + 日付となっており、フォーマットを自由に変更できない。

ファイルを監視してリネームする

下記の方法で保存された段階でリネームされるようにして自由な形式の名前にできる。

  1. ファイルを開くとiCloud DriveのPreviewにリンクが作成されるので最初から保存先をiCloud Drive上に変更しておく。

    defaults write com.apple.screencapture location ~/Library/Mobile\ Documents/com~apple~Preview/Documents/
    killall SystemUIServer
    
  2. スクリーンショットが保存されるときに付く接頭辞を削除する。接頭辞とタイムスタンプの間のスペースは削除できないことに注意。

    defaults write com.apple.screencapture name ''
    killall SystemUIServer
    
  3. ツールをインストールする。

    brew install rename fswatch
    
  4. fswatchを利用してスクリーンショットの出力先フォルダを監視し、renameで名前を変更する。

    nohup /usr/local/bin/fswatch -0 -e '/\.' ~/Library/Mobile\ Documents/com~apple~Preview/Documents/ 2>/dev/null |
    xargs -0 -n1 /usr/local/bin/rename 's/ (\d+)-(\d+)-(\d+) (\d+)\.(\d+)\./$1$2$3T$4$5/g' 2>/dev/null 1>&2 &