Wonders never cease.
Thanks to Cory at maclife, just discovered that OSX Terminal has a built in image resizing tool, SIPS.
You can read the official manual entry for SIPS to see the full power. But here’s some simple examples that I was using an image resizing tool for.
(1) resize all JPGs in current folder to fit in a box 800×800
sips *.jpg -Z 800
This will automatically find the largest dimension (width or height), resize that to be 800 and adjust the other to keep the same aspect ratio. Noice.
(2) resize all PNGs in current folder to 100 wide (keep aspect ratio)
sips *.png --resampleWidth 100
You can guess what the command is to set the height instead of width.
Works really well, and really fast. But beware of a couple of limitations.
- edits the original file directly. If worried take copies beforehand.
- doesn’t support changing the filename. If needed you’ll need to do that step separately before/after.
Every now and then you’re really grateful OSX is essentially Unix with a smiley face. Since that allows you to easily get under the hood for those “should be simple” tasks.
For this one, I needed to produce a list of files within a collection of folders which, for demonstration purposes, we’ll call media files.
Recursive file list
This is easy:
- Open a terminal window
cd (there’s a space after ‘cd’)
- Drag the folder you want to start from into the terminal window. It should then complete the path automagically.
- Press Enter to navigate to the selected folder.
- Enter the command
ls -RF > list.txt
This will produce a list of all files in the directory, and subdirectories, as list.txt in the starting directory. Feel free to give it a more useful name.
Once more, with filters
So now you’ve got a list of all the files in the folders. But if you want to find a subset based on filename (say, for example, the list of media files identified in the title as being 2009 releases) then use the wonders of unix to ‘pipe’ the file list to GREP to filter it before writing the file:
ls -RF | grep '2009' > 2009.txt
This will produce a list of only those files with ’2009′ somewhere in the title.
Armed with LS and GREP you can pretty much produce any subset of any folder set you require. Enjoy!