Jag skrev ett bash-skript för att ta bort alla säkerhetskopior men det senaste eftersom de som publicerades någon annanstans inte fungerade för mig. Jag vet att du inte ville specifikt göra det, men det kan ändras för att behålla fler säkerhetskopior (se nedan). Observera att detta inte gäller för att ta bort specifika mappar eller filer från säkerhetskopior. Detta skript antar att du har det på en lokal hårddisk (en extern skiva, troligtvis). Jag var tvungen att skriva mitt eget eftersom säkerhetskopiorna inte är associerade med den här datorn, så tmutil listbackups
fungerar inte, och det var vad andra skript berodde på. , ersätt DISKNAME
med namnet på hårddisken med Time Machine-säkerhetskopiorna och COMPUTERNAME
med namnet på den dator som säkerhetskopiorna tillhör.
Kör först det här skriptet för att se en lista över de säkerhetskopior som skriptet kommer att ta bort:
medan läsrad; göra echo "/ Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}" gjort < < (ls /Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3)
+3
lämnar den senaste säkerhetskopian. Om du vill behålla de två sista säkerhetskopiorna gör du det +4 . För att behålla de tre sista säkerhetskopiorna +5
och så vidare.
Om du vill ta bort alla säkerhetskopior utom den senaste, kör du det här skriptet:
medan läsrad; gör sudo tmutil radera "/Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME/${line}" gjort < < (ls / Volumes/DISKNAME/Backups.backupdb/COMPUTERNAME | tail -r | tail -n +3) >
Jag vet att det kan göras mer avancerad genom att definiera variabler och grejer, men för att vara ärlig är jag inte så väl insatt i skalskript. Jag vet bara att de andra superkomplicerade inte fungerade, men den här gjorde för mig, så här är det för eftertiden.