There's no absolute truth. Sub commands are neat, options have less chance to clash with existing filenames but are more annoying to write. In any case you can handle `--` to stop the parameters and begin to handle anything that follows as filenames.
If you guide the user to setup nice aliases, this should not matter too much.
If you guide the user to setup nice aliases, this should not matter too much.