The ls
utility accepts the -A
option on all BSDs. It's a standard POSIX option.
The base BSD tools are developed and maintained by each BSD project independently, but some implementation details are being shared between the projects occasionally (e.g. ways of solving bugs or implementing new features, sometimes even to implement GNU extensions).
The GNU tools, like coreutils, the nano
editor, and the bash
shell (which is three separate projects) are developed and maintained separately, as their own projects. Divergent implementations are therefore less likely to crop up.
However, there is still a difference between releases of these tools, and you can't generally expect that the bash
shell, for example, on one Unix will be exactly the same as on another Unix. Also, modified variants of the GNU tools may occur in some environments, which does not fully support all features, or that supports features not commonly implemented on Linux.
The most obvious example is macOS, which ships with release 3.2 of the bash
shell, while the most current release is 5.0.x.
What you can expect, or should expect, is that basic utilities, if they are standard POSIX utilities, should work as the POSIX standard says they should, regardless of whether these are the GNU, BSD or some other implementation of the utilities. Again, this does not include non-standard extensions to these utilities, like any of the "long options" supported by most GNU coreutils utilities, which may or may not be supported in other implementations, and may behave differently depending on the version of the utility.