すべてのバックアップを削除するためのbashスクリプトを作成しましたが、他の場所に投稿されたものが機能しないため、最新のバックアップは機能しませんでした。具体的にはそうしたくありませんでしたが、より多くのバックアップを保持するように変更できます(以下を参照)。これは、バックアップから特定のフォルダーまたはファイルを削除する場合には適用されないことに注意してください。このスクリプトは、ローカルハードディスク(ほとんどの場合、外部ディスク)にあることを前提としています。バックアップはこのコンピューターに関連付けられていないため、独自に作成するtmutil listbackups
必要があり、機能しません。他のスクリプトが依存していたものです。
以下のスクリプトDISKNAME
で、Time Machineバックアップを含むハードディスクCOMPUTERNAME
の名前と、バックアップが属するコンピューターの名前を置き換えます。
まず、このスクリプトを実行して、スクリプトが削除するバックアップのリストを表示します。
while read line; do
echo "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)
+3
最後のバックアップを残すようになります。最後の2つのバックアップを保持する場合は、作成し+4
ます。最後の3つのバックアップを保持する+5
、など。
最新のものを除くすべてのバックアップを削除するには、次のスクリプトを実行します。
while read line; do
sudo tmutil delete "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}"
done < <(ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)
変数や要素を定義することで、より洗練されたものにできることはわかっていますが、正直なところ、シェルスクリプトにはそれほど詳しくありません。私は他の非常に複雑なものが機能しなかったことを知っていますが、これは私のためにしたので、ここでは後世のためです。