I have a sandbox in which I've done a bunch of development work, and now I'd like to duplicate/clone it. Is there a way to do that directly, or do I have to refresh from production and then deploy everything from the original sandbox to the new one?
There isn't a way to 'Clone' a sandbox i.e. click one button to do it kinda thing.
You can deploy stuff across via
- Change Sets
- Force.com IDE
- Force.com Migration Tool
Or a combination of them.
Refreshes are only possible from Production to Sandbox.
(If you meant that the destination sandbox doesn't already exist and you first need to create one, then yes you will need to refresh (provision) a sandbox from Production and then deploy to it)