This is a re-attempt of #643
- `[ "$archive" = "" ]` may be replaced with `[ -z "$archive" ]`
- added exit codes
- upon entering `ext -c` with no arguments stderr will be thrown
from readlink, should be suppressed
Adding `[ -x ]` also checks if the command is an executable; if this
check is skipped, then user-defined aliases will interfere and validate
the condition (unintended).