Edit: As of OS X Lion (10.7) Applications show up in your services menu, so you get a right click menu for free.
The hdiutil command is awesome. Amongst its many features is the ability to create a DMG file from a specified folder. For some reason, there's no right click option for creating DMG files from folders. Strangely enough, there is a right click compress option that will create a zip, but that's really not sufficient. If you create a zip, you can't access individual files from it like you can a compressed DMG.
Edit: For anyone who just wants the command and not fuss with the scripts, here's how you might create a zip compressed dmg file from a folder called Movies:
Once again, I've used Automator to invoke a bash script. Now I can drop folders on my app and generate a compressed, read-only DMG file. I don't have lots of free space, so I use this for applications I've downloaded that come as a tar.gz/tar.bz/zip/whatever.
I'd like to point out that while it is possible to embed all of the bash script content into the Automator "Run Shell Script" feature, but then I wouldn't be able to easily invoke it from the command line and I use the command line alot.
Here's the content of my Automator "Run Shell Script" box (CreateDMGFromFolder.app):
Here's the content of my shell script (CreateDMGFromFolder):
Edit: For anyone who just wants the command and not fuss with the scripts, here's how you might create a zip compressed dmg file from a folder called Movies:
hdiutil create -srcfolder Movies -volname Movies -fs HFS+ \
-fsargs -c c=64,a=16,e=16 -format UDBZ ./Movies.dmg
Once again, I've used Automator to invoke a bash script. Now I can drop folders on my app and generate a compressed, read-only DMG file. I don't have lots of free space, so I use this for applications I've downloaded that come as a tar.gz/tar.bz/zip/whatever.
I'd like to point out that while it is possible to embed all of the bash script content into the Automator "Run Shell Script" feature, but then I wouldn't be able to easily invoke it from the command line and I use the command line alot.
Here's the content of my Automator "Run Shell Script" box (CreateDMGFromFolder.app):
Here's the content of my shell script (CreateDMGFromFolder):
Edit: I've updated the script in light of reading the bash man page. Parameter Expansion is bad-ass.
Here's the new shell script to replace the aforementioned (CreateDMGFromFolder):
2 comments:
Hello
Random question is it possible to set the level of compression in the script to help save space?
The UDBZ option is bzip2 compressed. If you take a peek at the man page for hdiutil you could pick a different one if you want. Look for the options listed under "convert", it lists the available formats there.
Post a Comment