Leere Ordner im Terminal unter macOS löschen

Beim digitalen Aufräumen unter macOS fiel mir eine Ordnerstruktur auf, in welcher viele leere Ordner waren. Da ich diese nicht von Hand löschen wollte, nutze ich das Terminal:

cd folder/
find . -type d -empty -delete

Im ersten Schritt wechselte ich in das entsprechende Verzeichnis. Anschließend wird die eigentliche Arbeit mit dem find-Befehl erledigt. Mithilfe des Befehls werden in diesem Falle alle leeren Ordner gesucht und postwendend gelöscht.

EXIF-Informationen aus Bildern unter Linux entfernen

Die meisten Bilder, welche aus einer Digitalkamera kommen enthalten sogenannte EXIF-Informationen. Die Abkürzung EXIF steht dabei für Exchangeable Image File Format. In diesen Metadaten zum Bild können eine Reihe von Informationen enthalten sein, wie z.B. Datum und Uhrzeit, Koordinaten an welchen das Bild geschossen wurde, die Blendenzahl und viele weitere. Unter Umständen kann es gewünscht sein diese Informationen zu entfernen. Unter Linux, in diesem Fall Ubuntu, kann das mit dem ExifTool erledigt werden. Dazu muss dieses im ersten Schritt installiert werden:

apt install exiftool

Anschließend kann eine einzelne Datei mit dem Befehl:

exiftool -all= image.jpg

bearbeitet werden. Soll das Ganze rekursiv über mehrere Ordner passieren kann folgender Befehl genutzt werden:

cd folder/
find . -iname "*.jpg" -type f -exec exiftool -all= {} \;

Er durchsucht alle Verzeichnisse unterhalb des gewählten Verzeichnisses und entfernt, für jede Datei mit der Endung .jpg, die EXIF-Daten.

Unter macOS alle Dateien eines Verzeichnisses hashen

Für die Überprüfung einiger Dateien unter macOS wollte ich diese mittels SHA1 hashen. Dazu dient das Kommando shasum:

shasum text.txt

Möchte man nun die Hashes aller Dateien eines Verzeichnisses berechnen, so kann man sich folgenden Befehls bedienen:

find . -type f -print0  | xargs -0 shasum

Anschließend erhält man eine Liste der Dateien mit den entsprechenden Hashwerten:

f6b53e378767be11ec05a25bc1be5cd6bd973fc6  ./schema.dxf
d5e5fb854be213410d8f734fee284bb12615349f  ./schema.svg
43ced91a43074bae41b5774bde6e35015ba1ed9c  ./schema.skb
0160e7f2265b51d6c5067a1468aa0cda42bc7e43  ./schema.skp
80b96f10c14b6c9bad809565d4be5c1ddc0c36a1  ./schema1.jpg
b4c9ecdc0cdec4b939049ad5e55164a09c7c6f85  ./schema2.jpg
821b657612029cf127cfb920b1943072ee333e54  ./schema.sh
64d44e1871aaa25cf0a5f34f76979f62be9617d6  ./schema.txt

Alle .git Ordner rekursiv entfernen

Vor kurzem stand ich vor dem Problem, das ich eine Menge Git-Repositories auf der Festplatte hatte und diese um den .git Ordner bereinigen wollte. Unter Linux und Mac OS X kann man sich für diese Aufgabe mit der Kommandozeile behelfen. Dazu wechselt man in den entsprechenden Ordner und gibt im Terminal folgendes ein:

find . | grep .git | xargs rm -rf

Damit werden sämtliche .git Ordner rekursiv gesucht und gelöscht. Was übrig bleibt sind die aktuellen Arbeitskopien der jeweiligen Git-Repositores.

Größere Dateien unter Linux finden

Möchte man unter Linux auf der Konsole nach Dateien suchen welche eine bestimmte Größe überschreiten, so kann man folgende Kommandozeile nutzen:

ls -lahS $(find / -type f -size +20000k)

Damit werden alle Dateien mit einer Größe von mindestens 20 Megabyte angezeigt. Die Ausgabe sieht in etwa so aus:

-rw------- 1 postgrey postgrey  10M Feb  1 18:22 /var/lib/postgrey/log.1000000002
-rw-r--r-- 1 root     root     9,9M Jul 13  2014 /usr/lib/locale/locale-archive