macでスクリーンショットを保存する場所・保存ファイル名・ファイルフォーマットを変える方法

macスクリーンショットを保存する場所を変える

ターミナルに次のようなコマンドを打ち込むことで、macスクリーンショットを保存する場所を変えられる

defaults write com.apple.screencapture location ~/Desktop/
killall SystemUIServer
defaults write com.apple.screencapture name aiueo

上の例ではスクリーンショットは aiueo + (撮影時刻) という名前になり、 ~/Desktop/ に保存される。

Dropboxで自動共有している場合

Dropboxで自動共有するのをオンにしている場合には、コマンドを打ち込んだだけでは保存場所が変わらなかった。そういう場合には、画面の上のバーにあるDropboxアイコン↓を押し、

f:id:yanagikn:20150126022133p:plain

そこで開く↓の右下の歯車アイコンを押し、
f:id:yanagikn:20150126022138p:plain

基本設定↓を押すと、
f:id:yanagikn:20150126022143p:plain

次のような設定ボックスが開くので、

f:id:yanagikn:20150126021843p:plain

「インポート」のタブから、「Dropboxスクリーンショットを共有」のチェックボックスをオフにするとよい。

参考リンク:Dropbox でスクリーンショットを共有/保存するには? (Dropbox ヘルプセンター)

jpg,pdfなど他のファイルフォーマットで保存したい場合

参考リンクHow to change Mac screenshot file format in OS X

ターミナルで次のコマンドを打ち込む。↓はjpgで保存したい場合。

defaults write com.apple.screencapture type jpg
killall SystemUIServer

gifで保存するようにすると軽くなるようだ。自分はpngで保存する設定にしている。

タイムスタンプの部分を変える方法

デフォルトではスクリーンショットのファイル名が
2015-01-01 at 10.00.0.png

となっているが、空白文字が入っているとターミナル上でのファイル名入力が面倒である。
なので、タイムスタンプの部分を変更してみよう。

(追記)

以前は下に書いた「古い」方法でよかったが、El CapitanではScreenCapture.stringsがrootの権限でも編集できなくなったようだ。なので、他のやりかたを試してみよう。スクリーンショットが入っているディレクトリに行って、以下のコマンドを使うと、空白文字をアンダーバー_に変えることができる。

find . -depth -name "* *" -execdir rename 's/ /_/g' "{}" \;
(古い方法)、El Captan以降では↑の追記参照

基本的には次のリンク
uti - Changing the default screenshot filename - Ask Different
に書いてあることをそのまま実行すれば良いのだが、日本語版の場合にはディレクトリ名のEnglishの部分をJapaneseに変える必要がある。その他は上のリンク先に書いてあることと同じ。

cd /System/Library/CoreServices/SystemUIServer.app/Contents/Resources/Japanese.lproj/
sudo cp ScreenCapture.strings ScreenCapture.strings.old
sudo plutil -convert xml1 ScreenCapture.strings

途中でパスワードを求められたら入力する。
こうしてScreenCapture.stringsのバックアップを取っておいたうえで、viやvimなどの適当なエディタで編集する。

sudo vi ScreenCapture.strings

こうすると次のようなファイルが開くので、
f:id:yanagikn:20150126020332p:plain

<key>%@ %@ at %@</key>  
<string>%@ %@ at %@</string>  

と書いてある部分の string のほうを、好きなフォーマットの名前に変える(keyのほうは変更しない):たとえば

<key>%@ %@ at %@</key>  
<string>%@_%@_%@</string>

というふうにする。

最後に次のように打ち込む

sudo plutil -convert binary1 ScreenCapture.strings
killall SystemUIServer

次のようにファイルの名前が変更できた。
f:id:yanagikn:20150126023557p:plain