From coreutils manual, about stat commandDue to shell aliases and built-in stat functions, using an unadorned  stat interactively  or in a script may get you different functionality  than that described here. Invoke it via env (i.e., env stat ...)  to avoid interference from the shell.What does shell aliases and built-in stat functions mean?  Inbash, I didn't find an alias or builtin in or function named stat$ whereis statstat: /usr/bin/stat /usr/bin/X11/stat /usr/share/man/man1/stat.1.gz /usr/share/man/man2/stat.2.gz$ help statbash: help: no help topics match `stat'.  Try `help help' or `man -k stat' or `info stat'.Why can Invoke it via env (i.e., env stat ...) avoidinterference from the shell?Can't a command following env be an alias, built-in command, orfunction?Is putting env in front of a command a way to specify that the command is an external executable?
Why is invoking stat with env suggested?
coreutils;stat
Bash may not have a stat built-in, but other shells may. In fact, a shell may provide built-in versions of any utility it wants to, and a user may override stat with their own shell function or alias calling another binary.No. The utility that env executes can not be a built-in (try it with cd for example). Aliases and shell functions are similarly not allowed.The manual is just trying to make sure that the user is getting the described functionality. In my opinion, if it wants to be really paranoid, it should also mention that you ideally should call stat with its absolute path. This makes more sense on non-Linux systems where the GNU coreutils are an optional extra (often installed in /usr/local/gnu/bin or somesuch place, or with a g prefix, e.g. gstat, gls, gmv etc.)