panda's tech note

macOSのローカルスナップショット

macOS High SierraやMojaveでは,Time Machineを有効にしているとディスクに空きがある限りローカルスナップショット(バックアップ)を作成するようになっています。差分バックアップになっているため,これによりファイルを消してもディスクの空き容量が増えないことがあります。

本ページでは,ローカルスナップショットの一覧とその削除方法をまとめます。なお,以下のコマンドはmacOS 10.13.6で確認しています。

スナップショット一覧

スナップショットの一覧は tmutil listlocalsnapshots / コマンドにより取得できます。スナップショットがあれば,以下のような com.apple.TimeMachine.YYYY-MM-DD-HHmmss 形式の一覧が出力として得られます。

$ tmutil listlocalsnapshots /
com.apple.TimeMachine.2018-07-10-070342
com.apple.TimeMachine.2018-07-10-102253
com.apple.TimeMachine.2018-07-10-145408
com.apple.TimeMachine.2018-07-10-155024
com.apple.TimeMachine.2018-07-10-162704

スナップショットの削除

スナップショットを削除するには, tmutil deletelocalsnapshots を使います。引数には,スナップショット一覧出力で確認した com.apple.TimeMachine.YYYY-MM-DD-HHmmss 形式の出力の YYYY-MM-DD-HHmmss の部分を使います。例えば com.apple.TimeMachine.2018-07-10-070342 のスナップショットを削除するには以下のコマンドを実行します。

$ sudo tmutil deletelocalsnapshots 2018-07-10-070342
Deleted local snapshot '2018-07-10-070342'

スナップショットの一括削除

tmutil コマンドにはスナップショットを一括で削除する方法はありません。しかし,以下のように awk を使った簡単なシェルスクリプトで一括削除が可能です。

$ for d in `tmutil listlocalsnapshots / | awk -F'.' '{print $4}'`; do sudo tmutil deletelocalsnapshots $d; done
Deleted local snapshot '2018-07-10-070342'
Deleted local snapshot '2018-07-10-102253'
Deleted local snapshot '2018-07-10-145408'
Deleted local snapshot '2018-07-10-155024'
Deleted local snapshot '2018-07-10-162704'