Wie finde ich alle Dateien, die größer als 1 GB sind, auf dem Mac HD?

11

Es scheint, dass einer dieser Befehle verwendet werden kann:

sudo find / -size +1G
sudo find / -type f -size +1G

Aber wenn es soweit ist /Volumes, werden tatsächlich alle Sicherungsdateien von Time Machine auf der externen Festplatte angezeigt. (und eine andere Festplatte für Daten).

Ich wollte auf CD gehen /Volumes/Macintosh HDund das finddort mit find .anstelle von starten find /, aber dann habe ich ein gemacht lsund es Volumesgibt wieder ein Recht dort.

Gibt es eine Option, um auch den Finder (die GUI) zu verwenden?

Eine andere Sache, die ich rätselhaft fand, ist, dass keine der Manpages findunter Mac OS Lion oder im Internet das +1G... alles, was sie erwähnten, war das Format 1Gfür die genaue Übereinstimmung.

Unpolarität
quelle

Antworten:

19

Sie können das verwenden -x, um das Überqueren von gemounteten Laufwerken zu vermeiden:

-x      Prevent find from descending into directories that have a device number different than that of the file from which the descent
        began.

Ihr Befehl sollte dann sein

$ sudo find -x / -type f -size +1G

In Bezug auf die Tatsache über die fehlende Dokumentation: Nicht fehlen ist einfach nicht leicht zu finden. Am Ende des PRIMARIESAbschnitts der Manpage

Bei allen Primärfarben, die ein numerisches Argument verwenden, kann der Zahl ein Pluszeichen ("+") oder ein Minuszeichen ("-") vorangestellt werden. Ein vorangestelltes Pluszeichen bedeutet "mehr als n", ein vorangestelltes Minuszeichen bedeutet "weniger als n" und keines bedeutet "genau n".

Matteo
quelle
6

Dies wird wahrscheinlich zu etwas anderen Ergebnissen führen als find, aber Sie könnten Spotlight verwenden. Diese Methode ist weitaus schneller als das Durchlaufen jeder Datei auf dem Laufwerk mitfind

Starten Sie in einem Finder-Fenster eine Spotlight-Suche und wählen Sie die Dateigröße sowie die Systemdateien aus dem Dropdown-Menü. (Suchen Sie nach dem + unter dem Suchfeld oben rechts.)Geben Sie hier die Bildbeschreibung ein

Wenn Sie dies in der Befehlszeile tun möchten, können Sie Folgendes verwenden:

mdfind "kMDItemFSSize >$[1024*1024*1024]"

In einem Test auf meinem Computer wurden bei der Spotlight-Suche nicht einige große Dateien gefunden, die sich im Papierkorb befanden, oder ein oder zwei Systemdateien (z. B. Schlafbild). Außerdem wurden Pakete (wie Anwendungen und einige VM-Images) anders behandelt als find. Auf der anderen Seite war mdutil fast augenblicklich, anstatt ein paar Minuten zu brauchen, bis der Befehl find meine Festplatte durchsucht hatte.

Mike Meyers
quelle
1

Dadurch werden auch Ordner gefunden, was nützlich ist, wenn wenig Speicherplatz vorhanden ist und entschieden wird, was gelöscht werden soll.

du -h 2> / dev / null | grep "G \ t"

enl8enmentnow
quelle
ha, interessante Lösung ... was ist, wenn alle Dateien größer als 500 MB gefunden werden sollen?
Unpolarität
Das wäre komplizierter, da dies von der Gigabit-Ausgabe der Festplattennutzung du
abhängt
-1

Wie wäre es mit diesem Befehl:

find / -type f -size +1G
Michiel
quelle
du meinst einfach das entfernen sudo? Aber ich möchte jede Systemdatei finden, die auch mehr als 1 GB .dmg
groß ist
Das Problem wird dadurch ohnehin nicht gelöst, da eingebaute Laufwerke /Volumesnormalerweise ohne sudo lesbar sind.
Nohillside