Große Dateien auf dem Mac sicher finden und entfernen
Der schnellste Weg, herauszufinden, was die Festplatte belegt, ist Messen, nicht Ordner für Ordner im Finder zu durchsuchen. Messen braucht trotzdem Interpretation: eine 40-GB-Mediathek in Fotos ist nicht dasselbe wie ein 40-GB-Installer, und APFS-Snapshots, Klone sowie freigebbarer Speicher können dazu führen, dass zwei korrekte Werkzeuge unterschiedlich wirkende Summen melden.
So wird Speicherplatz verbucht, so messen Sie ihn, und so finden Sie große Einträge sicher.
Warum die Festplatte voll ist, die Dateien aber nicht zusammenpassen
Moderne Macs nutzen das Dateisystem APFS, und APFS meldet Speicher anders, als der Finder ihn zeigt. Zwei Kategorien verbergen Gigabyte:
- Lokale Snapshots. Time Machine behält auf dem internen Laufwerk zeitpunktbezogene Snapshots der Festplatte zwischen Sicherungen. Sie halten den Platz von Dateien fest, die Sie bereits gelöscht haben, weil der Snapshot sie noch referenziert, bis macOS sie ausdünnt. Apple gibt an, dass stündliche Snapshots normalerweise etwa 24 Stunden behalten und mit dem Altern oder bei Bedarf an Speicherplatz automatisch entfernt werden. Listen Sie sie so auf:
tmutil listlocalsnapshots /
- Freigebbarer Speicher (purgeable space). APFS markiert Caches, lokale Snapshots und erneut herunterladbare Inhalte als freigebbar: Speicher, den macOS von selbst zurückholt, wenn etwas ihn braucht. macOS kann ihn als verfügbar zählen, und der Finder kann ihn in die verfügbare Summe einrechnen. Zuverlässig von Hand leeren lässt er sich nicht.
Prüfen Sie die Zahlen mit:
df -h /
diskutil apfs list
diskutil apfs listSnapshots /
df meldet, was das gemountete Dateisystem als belegt und verfügbar betrachtet.
diskutil apfs list zeigt den gemeinsamen Container, seine Volumes und die
restliche Kapazität. diskutil apfs listSnapshots / listet Snapshots am
Startvolume. Wenn der Finder die Festplatte voller darstellt, als Ihre Dateien
erklären, helfen diese Ansichten, normalen Dateiverbrauch von Snapshots und
gemeinsamer APFS-Kapazität zu trennen.
Tatsächlichen Verbrauch in der Kommandozeile messen
Um die schweren Ordner zu finden, ist du (disk usage) das zentrale Werkzeug.
Aus Ihrem Home-Ordner:
du -sh ~/* ~/Library 2>/dev/null | sort -h
-s liefert eine Zusammenfassung pro Eintrag, -h gibt menschenlesbare Größen aus,
und die Weiterleitung an sort -h stellt die größten zuletzt. Gehen Sie jeweils nur
in ein großes Ergebnis hinein. Terminal kann Vollzugriff auf die Festplatte für
geschützte App-Daten brauchen, und ein Scan des Home-Ordners kann lange dauern,
wenn er Cloud-Ordner oder Entwicklerbäume durchquert.
Die Zahl ist nicht immer die physische Belegung. Hard Links geben demselben
zugrunde liegenden File mehrere Namen, und APFS-Klone teilen Blöcke, bis eine Kopie
sich ändert. Ordnersummen und freier Speicher im Container können daher
unterschiedliche Fragen beantworten. Nutzen Sie du, um Kandidaten zu finden, und
danach „Informationen“ im Finder sowie die APFS-Kapazitätsansicht, bevor Sie etwas
mit großer Wirkung löschen.
Um einzelne große Dateien statt Ordner zu finden, filtert find nach Größe:
find ~/Downloads ~/Movies ~/Desktop -type f -size +500M -print 2>/dev/null
Beginnen Sie mit vom Nutzer gesteuerten Ordnern, statt das gesamte Home-Verzeichnis
zu scannen. Der Befehl erwischt vergessene Videoexporte, Disk-Images und Archive,
ohne durch jede Anwendungsdatenbank zu wandern. Erweitern Sie die Liste der
Startordner nur bei Bedarf. Für eine interaktive Terminal-Karte kann ncdu einen
gewählten Ordner nach Größe durchstöbern. Behandeln Sie es zuerst als rein lesendes
Entdeckungswerkzeug; zeigen Sie einen Kandidaten im Finder und legen Sie ihn in den
Papierkorb, nachdem Sie ihn identifiziert haben, statt aus einem ungewohnten Baum
innerhalb von ncdu zu löschen.
Den versteckten Speicher zurückgewinnen
Wenn Snapshots oder freigebbarer Speicher das Problem sind und nicht eine einzelne Datei, schafft das Freigeben von wirklich vom Nutzer gesteuertem Platz macOS Raum, während es lokale Snapshots und freigebbare Caches mit der Zeit ausdünnt oder von selbst zurückholt. Ein Time-Machine-Laufwerk wieder anzuschließen macht mehr Backup-Historie verfügbar, ist aber kein manueller Befehl zum Leeren von Snapshots. In der Regel müssen Sie keine der beiden Kategorien von Hand erzwingen.
Eine visuelle Karte, wenn eine Liste nicht reicht
Größen im Terminal sind nützlich, aber über eine ganze Festplatte schwer im Kopf zu halten. Eine Treemap löst das, indem sie jeden Ordner als Rechteck im Maßstab seiner Größe zeichnet: die größten Dinge sind die größten Blöcke, und auf einen Blick sieht man, wo das Gewicht sitzt. Die Analyse-Ansicht von Mole ist das grafische Gegenstück zum Pfad-Walk oben: sie kartiert die ganze Festplatte von der Wurzel aus, bohrt per Klick ein und lässt Sie einen Eintrag im Finder zeigen oder in den Papierkorb legen (über das Rechtsklick-Menü, mit Größenbestätigung, und wiederherstellbar, bis der Papierkorb geleert wird). Navigationswurzeln wie Ihr Home-Ordner haben keine Löschoption, sodass ein Fehlklick nichts Strukturelles entfernen kann. Nutzen Sie, was Sie bevorzugen; Treemap und Befehle beantworten dieselbe Frage.
Unter der Haube: warum ein Festplatten-Analyzer schnell bleibt
Sie brauchen diesen Teil nicht, um Speicher freizugeben. Wenn Sie sich aber je
gefragt haben, warum eine gute Festplattenkarte in Sekunden zurückkommt, wo ein
naives Skript kriecht, ist hier die Form. Das Beispiel ist Moles Open-Source-Kommandozeilen-Tool,
konkret der Go-Analyzer in cmd/analyze. Die native App hat einen eigenen
Swift-Scanner, aber beide halten Parallelität begrenzt und deduplizieren Hard Links.
du-Prozesse, Hard-Link-Dedup zählt jedes Byte einmal, und Top-N-Heaps vermeiden das Sortieren des gesamten Baums.Der langsame Weg ist der offensichtliche: jeden Ordner durchlaufen, jede Datei
stat-en, alles addieren, dann sortieren. In einem Home-Verzeichnis mit Millionen
kleiner Dateien ist das langsam und speicherhungrig. Der Scanner umgeht beide Fallen
mit drei Ideen.
Begrenzt, aber nicht mit einem einzigen Limit. Naive Parallelität spawnt eine
Goroutine pro Ordner und schmilzt die Festplatte. Der Scanner hält stattdessen
getrennte Budgets für getrennte Ressourcen: einen Pool von Directory-Workern
(2 bis 12, skaliert nach Kernen), einen viel kleineren Pool von höchstens vier
parallelen du-Subprozessen (weil du selbst I/O-parallel ist und mehr davon die
Festplatte nur thrashen lässt), und eine Queue-Grenze, damit ausstehende Arbeit nie
zu Tausenden gestapelter Goroutinen aufbläht. Diese in ein Limit zusammenzuziehen
ist der Weg, wie Festplatten-Tools entweder langsam oder speicherhungrig enden.
Nur die Gewinner behalten. Sie wollen die größten Ordner, nicht alle, deshalb sortiert der Scanner nie die ganze Festplatte. Er streamt jeden gemessenen Eintrag durch zwei Min-Heaps, einer hält die Top-30-Ordner, einer die Top-20-Dateien. Ist ein Heap voll, wird ein neuer Eintrag mit dem kleinsten Überlebenden verglichen und verworfen, wenn er ihn nicht übertrifft. Das ist grob linear in der Dateianzahl und hält nur ein paar Dutzend Einträge im Speicher, statt Millionen zu sortieren.
Jedes Byte einmal zählen. Eine Datei mit mehreren Hard Links würde sonst einmal
pro Link addiert. Der Scanner merkt sich das Paar (device, inode) einer Datei beim
ersten Treffer und überspringt die Wiederholungen, so stimmen die Summen mit du
überein. Er weigert sich sogar, eine Ordnersumme zu cachen, die von dieser Dedup
abhängt, weil die Zahl scanreihenfolge-abhängig wäre und einen späteren
eigenständigen Re-Scan vergiften würde.
Nichts davon ist exotisch. Es ist der Unterschied zwischen einem Werkzeug, das „was füllt meine Festplatte“ in Sekunden beantwortet, und einer Shell-Schleife, die das nicht tut, und die Treemap oben ist die Oberfläche genau dieser Engine.
Vor dem Entfernen klassifizieren
Einen großen Eintrag zu finden heißt nicht, ihn löschen zu dürfen. Legen Sie jeden Kandidaten in einen von drei Eimern:
- Ersetzbar: geprüfte Installer, reproduzierbare Build-Ausgaben und dokumentierte Caches. Prüfen Sie die Kosten von Download oder Neuaufbau vor dem Entfernen.
- Persönlich oder betrieblich: Fotos, Nachrichten, Projektarchive, Virtual-Machine-Disks, Modellgewichte und Gerätesicherungen. Exportieren, sichern oder stilllegen Sie diese über die zuständige App.
- App- oder systemverwaltet: Paketdatenbanken, Container, Mediatheken von Fotos
oder Mail, Snapshots und alles unter
/System. Nutzen Sie die Steuerung der App oder lassen Sie es in Ruhe.
Gehört ein großer Ordner zu einer App, die Sie nicht mehr nutzen, folgen Sie dem dokumentierten Deinstaller und prüfen Sie die Reste. Legen Sie gewöhnliche Dateien zuerst in den Papierkorb und lassen Sie sie dort, bis die betroffene App und das Projekt noch funktionieren. Den Papierkorb zu leeren ist der irreversible Schritt.
Zur breiteren Bereinigung jenseits einzelner großer Dateien siehe wie Sie Speicher freigeben, ohne Dateien zu verlieren.
Eine wiederholbare Methode
Vergleichen Sie zuerst df, die APFS-Kapazität und die Speicher-Einstellungen, damit
Sie wissen, ob das Problem echter physischer Druck oder Klassifikation ist. Messen
Sie als Nächstes ausgewählte Startordner, bohren Sie in den größten Zweig und
klassifizieren Sie den Kandidaten nach Besitz und Wiederherstellbarkeit. Entfernen
Sie zuerst ersetzbare Daten, behandeln Sie persönliche Daten über Backups und
zuständige Apps, und halten Sie gewöhnliche Löschungen im Papierkorb wiederherstellbar,
bis Sie das Ergebnis geprüft haben.