> adb shell
sh-4.1$ ls -F
-F: No such file or directory
-F
switch works fine on my Ubuntu.
Why doesn't it work on Android? Is there a way to make it work?
Most shell commands in Android are not GNU versions or a POSIX-compliant implementation, they are either from Toolbox or Busybox and mostly stripped down versions.
A lot of commands in /system/bin
are symlinks to /system/toolbox
. I haven't found much documentation about it, just the source at https://android.googlesource.com/platform/system/core/+/jb-mr1-release/toolbox/
Busybox is another implementation of several common shell commands, with more commands and features than the default Toolbox. It's used on other embedded systems too, and some bootable GNU/Linux CDs, so you may already be familiar with it. Because it's open-source, there are several installers available on Google Play: just search for "Busybox".