13. September 2023 | 0 Kommentare »
Tags: Bildkonvertierung, CLI, convert, find, Image, Image conversion, ImageMagick, Linux, macos, man, Terminal, xargs
Kategorie: Computer, Technik
Umwandlung aller Bilder eines Types aus verschiedenen Unterordnern in ein spezielles Verzeichnis
Wenn du mehrere Unterverzeichnisse hast, über die vertreut Bilddateien liegen, die du platzsparend kleinrechnen und in ein eigenes Verzeichnis abspeichern willst, dann probiere diesen Code aus:
find . -name *.TIF -print0 | \
xargs -n1 -0 -I% sh -c \
'convert -format jpg -quality 80 \
"%" klein/$(basename "%" .TIF).jpg'
# find: 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 der gefundenen Datei
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 stehen.
$(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.
21. June 2023 | 0 Kommentare »
Tags: Akku, apple, ausschalten, CLI, Commandline, Energie, hibernation, Kommandozeile, laden, Laptop, lidwake, OSX, pmset, RAM, Ruhezustand, safe sleep, schlafen, sleep, SSD, Strom sparen, sudo, Terminal
Kategorie: Technik
Solange der Laptop Zuhause steht, habe ich ihn am Strom angeschlossen. So spare ich an Ladezyklen, die den Akku altern lassen würden. Natürlich ist ein voller Akku auch nicht der Optimalzusand für Li-Ion Akkus, aber besser so, als ständig zwischen 30% und 80% zu pendeln. Ich nehme hier die Degenration durch den permanenten Vollzustand in Kauf, in der Annahme, dass es das geringere Übel für den Akku ist.
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 meiner Meinung nach 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, weil er im zugeklappten Zustand auch Strom verbraucht.
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 System-Zustandes
- (0) Systemzustand nur im RAM gespeichert (geht der Akku auf 0%: Totalverlust)
- (25) nur auf der Festplatte gespeichert (langsames speichern und laden des Zustands)
- (3) im RAM und auf Festplatte gespeichert (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.