ImageMagick Format Konvertierungen

Umwandlung aller Bilder eines Types aus verschiedenen Unterordnern in ein spezielles Verzeichnis

Wenn du mehrere Unterverzeichnisse hast, in denen die Bilddateien verstreut sind und du willst sie alle platzsparend kleinrechnen und ein ein eigenes Verzeichnis abspeichern dann probiere diesen Code aus:


find . -name *.TIF -print0 | \
xargs -n1 -0 -I% sh -c \
'convert -format jpg -quality 80 \
"%" klein/$(basename "%" .TIF).jpg'

# Dateien suchen
# Pipe zu xargs
# führt ein Shell Kommando mit convert aus
# schreibt alle Dateien in ein! Unterverzeichnis

Ich hatte viele große TIF Dateien vom Fotografen aus mehreren WeTransfer ZIP Dateien extrahiert, die nun in verschiedenen Ordnern verstreut lagen. Eine Datei wog über 100 MB. Die vielen überflüssigen GB Speicherplatz wollte ich wieder auflösen.

Ein find . -name *.TIF sucht rekursiv nach allen TIF Dateien.
-print0 sorgt dafür dass ein null character als Trennzeichen gesetzt wird, weil sonst Leerzeichen in den Ordnernamen für Falschinterpretationen nach der Pipe entstehen können.

xargs -n1 führt maximal ein Argument im nachfolgenden Befehl aus
-0 löst die null character als Trennzeichen auf
-I% ist der Platzhalter für den Pfad/Dateinamen
sh -c führt ein Shell Kommando von einem String aus, das in einfachen Anführungszeichen folgt
convert -format jpg -quality 80 stellt die Konvertierung auf JPG und Qualität 80% ein
"%" Damit die Leerzeichen richtig interpretiert werden muss der Platzhalter in Anführungszeichen
$(basename "%" .TIF).jpg sorgt dafür, dass nur der Dateiname vom Platzhalter verwendet wird und das .TIF ausgelassen wird, so dass ich lediglich die Endung jpg am Ende habe.

Mac Laptop akkuschonend schlafen legen

Solange der Laptop Zuhause steht, habe ich ihn am Strom angeschlossen. So spare an Ladezyklen, die den Akku altern lassen würden. Natürlich ist ein voller Akku auch nicht der Optimalzusand für LiIon Akkus, aber besser so als ständig zwischen 30% und 80% zu pendeln.

Der Akku entlädt sich aber über einen längeren Zeitraum von alleine. Fällt seine Kapazität auf unter 95% wird er über das Netzteil auf 100% nachgeladen. Wer also den eingebauten Akku schonen will, weil der Laptop meistens auf dem Schreibtisch steht, versucht den Ladezustand über 95% so lange wie möglich zu halten.

Wenn man aber den Laptop transportiert, um ihn an anderer Stelle wieder mit dem Stromnetz zu verbinden, z.B. bei einem Arbeit- oder Auftraggeber oder bei Freunden, dann kann es sein, dass er am Zielort bereits 1% oder mehr an Kapazität verloren hat. Wir erinnern uns, 5% dürfen wir uns erlauben, bevor ein neues Ladezyklus initiiert wird.

Der Verlust an Kapzität tritt auf, wenn man ihn in den Ruhemodus versetzt, z.B. in dem man ihn zuklappt und anschließend vom Stromnetz trennt. Im Ruhezustand behält er den aktuellen Systemzustand im RAM. Das sorgt dafür, dass er nach dem Aufklappen fast instantan den Zustand aufrufen kann, an dem den Laptop schlafen legte. Denn aus dem RAM lässt sich bekanntlich am schnellsten lesen.

Nun verbraucht das Speichern der Daten im RAM aber Strom, den er sich aus dem Akku holen muss. Darum verliert der Laptop während des Transportes Strom.

Lösung

Man kann unter OSX (macOS) einstellen, wie der Hibernation-Zustand, der Ruhemodus, ausgeführt wird. Es gibt mehrere Varianten:

Speichern des Zustands

  • (0) nur im RAM (geht der Akku auf 0%: Totalverlust)
  • (25) nur auf der Festplatte (langsames speichern und laden des Zustands)
  • (3) im RAM und auf Festplatte (safe sleep – Standard)

Eine Änderung an den Systemeinstellungen kann man über das Terminal, die Kommandozeile vornehmen. Man kann mit pmset -g erfahren, welche Power Management Settings gesetzt sind. Hinter dem Stichwort hibernationmode steht eine Zahl, die für den Modus steht (s.o.). Will man den Modus auf akkuschonenenden Festplattenmodus stellen, muss man sudo pmset -a hibernationmode 25 eingeben und anschließend neu starten. Anschließend kann man das sleepimage aus dem Pfad /private/var/vm mit sudo rm -f /private/var/vm/sleepimage löschen und einiges an Platz auf der Festplatte frei machen.

Im Modus 25 wird der Zwischenstand allein auf die Festplatte geschrieben, was bei einer SSD kaum Zeit benötigt. Dann wird der Rechner komplett ausgeschaltet und kann durch Drücken auf den Powerknopf wieder geweckt werden. Man verliert (fast) keinen Strom unterwegs.
Es gibt aber einige Fallen die unterwegs doch für Akkuverlust sorgen könnten. Der Rechner startet (bei mir) alle 2 Stunden, um sich dem Netzwerk zu zeigen. Das sollte man unterbinden mit sudo pmset -a ttyskeepawake 0. Dass er nicht gleich beim Öffnen des Deckels angeht, sollte man sudo pmset lidwake 0 setzen.