If cross-platform (BSD, MacOS) compatibility is not an issue, you might consider using GNU getopt(1) to parse the command line parameters. Unfortunately, Bash's builtin getopts command does not understand long options.
BTW, as a zsh user, I would typically write things like "ls *(.)", "ls -d *(/)" for non-recursive lists. This works well as long as you don't have thousands of files in your directory. For my case the "**/*(.)" works wonders as well, even on my large home directory.
Oh, also, tmux allows a lot of customisation and mouse interaction. I can now select and resize panes with the mouse, while also selecting text that is automatically copied to both the tmux paste buffer AND the desktop paste buffer.
If cross-platform (BSD, MacOS) compatibility is not an issue, you might consider using GNU getopt(1) to parse the command line parameters. Unfortunately, Bash's builtin getopts command does not understand long options.
BTW, as a zsh user, I would typically write things like "ls *(.)", "ls -d *(/)" for non-recursive lists. This works well as long as you don't have thousands of files in your directory. For my case the "**/*(.)" works wonders as well, even on my large home directory.