Wie kann ich leere Ordner in Mac OS X löschen?

Antworten:

43

Beachten Sie zunächst, dass das Löschen leerer Verzeichnisse in der Regel nicht erforderlich ist. Einige Dienste oder Anwendungen benötigen möglicherweise sogar bestimmte Verzeichnisse. Sei dir bewusst, was du tust.

Sie können leere Ordner mit auflisten find, wenn Sie von Terminal.app ausgeführt werden:

find . -type d -empty

Standardmäßig werden findDateien und Ordner aufgelistet, hier -type djedoch auf Verzeichnisse beschränkt, und die -emptyOption zeigt nur leere Verzeichnisse an. Dadurch werden alle Ordner wieder verwendet, die von Ihrem Ausgangsverzeichnis ( oder kurz, ) stammen. Um dies auf Ihr gesamtes Dateisystem zu erweitern, verwenden Sie:/Users/your-username/~

find / -type d -empty

Hier /bezeichnet das Stammverzeichnis Ihres Mac OS X-Dateisystems. Sie können natürlich auch einen anderen Ausgangspunkt verwenden, z. B. die externe Festplatte, unter der Sie sich befinden ./Volumes/your-disk-name

find /Volumes/your-disk-name -type d -empty

Wenn Sie nun beliebige findAusgaben löschen möchten , fügen Sie einfach Folgendes hinzu -delete:

find . -type d -empty -delete

Hinweis: Dies erfordert keine Bestätigung . Es werden alle Verzeichnisse gelöscht, die es kann, dh diejenigen, zu deren Löschen Sie berechtigt sind. Sie werden nicht in den Papierkorb verschoben, sondern sind für immer verschwunden. Wenn Sie vor dem Entfernen gefragt werden möchten, ändern Sie den Befehl folgendermaßen:

find . -type d -empty -exec rm -ri '{}' \;
slhck
quelle
Es gibt mir Output über illegal option -- t typeund emptyscheint nicht in der Lage zu sein zu erkennen.
AsTeR
1
@AsTeR Die OS X-Version von finderfordert einen Pfad, versuchen Sie es also erneut mit find . -type d, nicht find -type d(letzterer funktioniert für GNU find).
Slhck
6
Während dies funktioniert, werden wahrscheinlich keine Ordner gefunden, die nur die versteckten .DS_Store-Dateien enthalten, so dass sie technisch nicht leer sind, dem Benutzer jedoch leer erscheinen. Wenn ein Benutzer alle Ordner finden möchte, die leer erscheinen , werden die Ordner , die er einmal im Finder geöffnet hat, nicht auf diese Weise gefunden, da der Finder eine .DS_Store-Datei hinzugefügt hätte.
SuperTempel
Daher müssen wir dies möglicherweise in zwei Schritten tun: Entfernen Sie zuerst die .DS_Store-Dateien (kann auf findähnliche Weise wie oben verwendet werden) und verwenden Sie dann den vorgeschlagenen Befehl, um verbleibende leere Verzeichnisse zu entfernen.
Gerlos
6

Ich habe ein kleines und kostenloses Programm erstellt, das das besser löst:

http://www.macupdate.com/app/mac/52551/find-empty-folders

Der Vorteil dieses Programms ist, dass es auch Ordner findet, die scheinbar leer sind, aber die unsichtbare Datei ".DS_Store" enthalten.

Außerdem können Sie die gefundenen Objekte sofort in den Papierkorb verschieben.

SuperTempel
quelle
Wäre gut , wenn es die Icon - Datei als auch handhaben kann - superuser.com/questions/298785/icon-file-on-os-x-desktop
kenchew
@kenchew Ich glaube, Sie suchen diesfind ~/Documents -type f -name 'Icon?' -print -delete;
JayRizzo
2

Um diese Bemühungen voranzutreiben:

Ich habe ein Skript erstellt, mit dem ich von Zeit zu Zeit meinen Dokumentenordner bereinige, da ich es leid bin, überlastet und einfach zu sein.

Ich habe mich bemüht, diese zu verbessern und eine alternative Lösung anzubieten.

Schließlich für @ kenche der Icon - Datei, die nicht auf meinem Mac zu existieren scheint , da ich nicht meine Ordner - Symbole geändert haben, aber Sie können in der Inspektor. Wenn Sie ein Bild nach links oben ziehen, wird die Icon^MDatei in diesem Verzeichnis erstellt.

Um auch diese zu finden, kannst du laufen:

(Sollten Sie paranoid sein, wenn Sie ein falsches Positiv finden, verwenden Sie: ctrl+ v ctrl+ manstelle des?)

find ~/Documents -type f -name 'Icon?' -print;
# and to remove 
find ~/Documents -type f -name 'Icon?' -print -delete;

WICHTIG

Bitte wie oben unter @slhck angegeben: Für einige Dienste oder Anwendungen müssen möglicherweise sogar bestimmte Verzeichnisse vorhanden sein. Dies gilt auch für die DS_Store & Icon-Dateien. BITTE beachten Sie, was Sie tun. Beachten Sie auch: Dieses Skript fordert Sie nicht zur Bestätigung auf. Es werden alle Verzeichnisse gelöscht, die es kann. dh diejenigen, zu deren Löschen Sie berechtigt sind. Sie werden nicht in den Papierkorb verschoben, sondern sind für immer verschwunden.

BASH-Skript

#!/bin/bash
# =============================================================================
# MAC OSX HIGH SIERRA 10.13.4 (17E199)
# Terminal: Version: 2.8.2 64-Bit (Intel): Yes
# Terminal Location: /Applications/Utilities/Terminal.app
# =============================================================================
# Terminal CLEAN UP YOUR DOCUMENTS FOLDER.
# =============================================================================
# START WHAT IS BELIEVED TO BE EMPTY NOW.
# =============================================================================
echo 'Searching Documents for empty folders...'
find ~/Documents -type d -empty;
# =============================================================================
# SHOW & THEN REMOVE ALL MAC OS DS_Store FILES
# =============================================================================

echo 'Searching Documents for DS_Store files...'
find ~/Documents -type f -name ".DS_Store" -print;

echo 'Removing DS_Store files...'
find ~/Documents -type f -name ".DS_Store" -print -delete;
# =============================================================================
# SHOW & THEN REMOVE ALL MAC OS ZERO SIZED FILES
# =============================================================================
echo 'Searching Documents for ZERO file sized files...'
find ~/Documents -type f -empty;

echo 'Removing ZERO file sized files...'
find ~/Documents -type f -empty -delete;
# =============================================================================
# SHOW & THEN REMOVE Icon^M FILES
# USE THE ? MARK FOR EASE OF USE YOU CAN ALSO SUB 'CTRL + V & CTRL + M' FOR ^M 
# =============================================================================

echo 'Searching Documents for Icon files...'
find ~/Documents -type f -name 'Icon?' -print;

echo 'Removing Icon files from Documents...'
find ~/Documents -type f -name 'Icon?' -print -delete;

# SEEMINGLY THE SAME AS
# find ~/Documents -type f -size 0 -print
# find ~/Documents -type f -size 0 -print -delete
# =============================================================================
# SHOWCASE NEW FOUND EMPTY FOLDERS
# =============================================================================
echo 'Showcasing new result of existing and new found empty folders...'
find ~/Documents -type d -empty;

echo 'Deleting result of empty folders...'
find ~/Documents -type d -empty -delete;

echo 'Showcasing the removal of said, 'empty folders'...'
find ~/Documents -type d -empty;

Ende des Skripts.

Skript kann hier auf GitHub eingesehen werden

Verweise:

Informationen zu den Symbolen, die Dateien auf Ihrem Mac darstellen

Gibt es eine Möglichkeit, alle Ordner zu entfernen, die nur rekursiv .DS_Store enthalten?

Ordner und Unterordner suchen, die nur ".DS_Store" enthalten

So finden Sie alle Null-Byte-Dateien in einem Verzeichnis einschließlich Unterverzeichnissen

Symbol? Datei auf dem OS X-Desktop

JayRizzo
quelle