seticon - set icon of Mac OS X files
# See: # http://osxutils.sourceforge.net # http://www.sveinbjorn.org/osxutils_docs cd ~/Desktop curl -L -O http://surfnet.dl.sourceforge.net/sourceforge/osxutils/osxutils1.7.pkg.zip unzip -qq osxutils1.7.pkg.zip open -a Installer osxutils1.7.pkg /bin/mkdir -p ~/Desktop/IconDir /bin/cp /Library/Desktop\ Pictures/Nature{/Ladybug.jpg,'/Evening Reflections.jpg'} ~/Desktop/IconDir /usr/bin/sips -i ~/Desktop/IconDir/* /usr/bin/touch ~/Desktop/IconDir/testfile.txt /bin/chmod 0777 ~/Desktop/IconDir/* ls -l ~/Desktop/IconDir/* open ~/Desktop/IconDir # set icon /usr/local/bin/seticon ~/Desktop/IconDir/Ladybug.jpg ~/Desktop/IconDir/testfile.txt # update file system changes of open Finder window /usr/local/bin/wsupdate ~/Desktop/IconDir/testfile.txt #/bin/mv ~/Desktop/IconDir{/testfile.txt,/tmp.txt} && /bin/mv ~/Desktop/IconDir{/tmp.txt,/testfile.txt} # set icon /usr/local/bin/seticon ~/Desktop/IconDir/'Evening Reflections'.jpg ~/Desktop/IconDir /usr/local/bin/wsupdate ~/Desktop/IconDir /bin/chmod -R 0755 ~/Desktop/IconDir ls -al ~/Desktop/IconDir/* # geticon sips -i file.jpg geticon -t icns file.jpg # list files with resource forks # cf. http://www.entropy.ch/blog/Mac+OS+X/2005/03/30/, # http://forums.macosxhints.com/showthread.php?t=70224 and # "can UNIX resolve OS X aliases?", http://forums.macosxhints.com/showthread.php?t=19960 cd ~/Desktop/IconDir ls -1 | while IFS= read -r i; do if [[ -s ${i}/..namedfork/rsrc ]]; then ls -l "${i}/..namedfork/rsrc"; fi; done find . -mindepth 1 -maxdepth 1 -type f -exec test -s {}/..namedfork/rsrc \; -print find . -mindepth 1 -maxdepth 1 -type f -exec test -s {}/..namedfork/rsrc \; -print0 | xargs -0 -n1 -I '{}' ls -l '{}'/..namedfork/rsrc find . -mindepth 1 -maxdepth 1 -type f -exec test -s {}/..namedfork/rsrc \; -print0 | xargs -0 -n1 -I '{}' sed -n -e 'l' '{}'/..namedfork/rsrc find . -mindepth 1 -maxdepth 1 -type f -exec test -s {}/..namedfork/rsrc \; -print0 | xargs -0 -n1 -I '{}' ruby -n -e 'p $_.to_s' '{}'/..namedfork/rsrc find . -mindepth 1 -maxdepth 1 -type f -exec test -s {}/..namedfork/rsrc \; -print0 | xargs -0 -n1 -I '{}' strings '{}'/..namedfork/rsrc # delete resource fork find . -type f -maxdepth 1 -exec test -s {}/..namedfork/rsrc \; -print0 | xargs -0 -I '{}' /bin/cp /dev/null '{}/..namedfork/rsrc' ditto --norsrc file.jpg{,.bak} ditto --norsrc file.jpg.bak file.jpg # some additional resource fork tools man Rez man DeRez man RezWack # create a flattened file from resource and data fork man UnRezWack man SplitForks man FixupResourceForks /Developer/Tools/Rez --help /Developer/Tools/DeRez --help /Developer/Tools/RezWack --help /Developer/Tools/UnRezWack --help /Developer/Tools/SplitForks --help /System/Library/CoreServices/FixupResourceForks --help ls -1 /Developer/Tools/* /Developer/Tools/RezDet --help /Developer/Tools/RezDet -d file; echo $? /Developer/Tools/RezDet -s file; echo $? man CpMac | less -N -j -9 -p 'As of Mac OS X 10.4' man MvMac | less -N -j -11 -p 'As of Mac OS X 10.4' # http://tclresource.sourceforge.net man tclresource
Further information:
- Mac 101: Change Your Icons
- Mac OS X: Changing the Icon for a File Type
- How Do I Change File Icons And The Default Application On My Mac?
- Set Icon
- Mac Icon FAQ
- Setting an Icon From the CLI
- osxutils Documentation
- Aliases, symbolic links, Path Finder aliases... Help!
- BlueHarvest
- Making Resource-Fork-Aware Backups with rsync on Mac OS X