Trasformare icns in png

agosto 24, 2007

Questo oneliner è utile se volete trasformare le belle icone di Mac OS X, in qualche altro formato raster, come ad esempio PNG, JPG, etc.:

sips -s format png HelpViewer.icns --out help_viewer.png

Il realtà sips è un editor di immagini via linea di comando, quindi può fare molte altre cose e maneggiare molti altri formati, ma è l’unico che conosca che riesce a maneggiare il formato icns.


Modificare ricorsivamente l’estensione dei file

agosto 21, 2007

Ecco un altro simpatico oneliner di utilità generale, ogni tanto mi capita di dover modificare tutte le estensioni di un certo tipo, per esempio .jpg, in un altro tipo, per esempio .png.

for f in *.jpg; do mv $f `basename $f .jpg`.png; done

Oppure, usando il fidato find (che non so perchè, ma amo tantissimo! ^_^:

find ./ -name '*.jpg' -exec sh -c 'mv {} `basename "{}" .jpg`.png' \;

Da notare l’esecuzione della shell col comando di mv. (occhio che le virgolette intorno al comando basename non sono apici singoli, ma backtick, un modo per dire alla shell: “esegui questo comando e non prenderlo come una stringa”.
Il backtick può essere trovato sulle tastiere italiane con altgr + ‘, oppure alt + 96, mentre nelle tastiere mac è alt + 9 (anche detto options + 9)


Oneliner per cercare ricorsivamente file con un determinato pattern

agosto 20, 2007

Gli oneliner sono comandi unix di una sola riga che però permettono di fare cose molto potenti, spesso batch di azioni che sennò sarebbero tediose da gestire cartella per cartella, man mano che troverò oneliner sempre più utili, li segnerò in questo blog (più che altro per ricordarli io stesso! ^_^) nella categoria Oneliner (e spesso GNU/Linux):

Questo comando cerca tutti i file (-type f) che seguano il pattern (-name “._*”), cioè tutti i file che iniziano con ._ (mi capita in osx quando sposto alcune cartelle nelle chiavette usb in FAT32… ma perchè? O_O), è da notare che il parametro -name accetta le classiche wildcard della shell, infine da in pasto al comando rm (-exec rm {}) il file trovato ({}), il comando deve finire con \;

find ./ -type f -name "._*" -exec rm {} \;

Ovviamente senza la parte -exec visualizza a video tutti i file incriminati! ^_^

Il comando find l’ho trovato disponibile su tutti i *nix che ho provato (vari GNU/Linux, vari BSD, Mac OS X compreso!)