That may just be because they are shell scripts instead of symlinks. On ArchLinux:<p><pre><code>    $ ls -li &#x2F;usr&#x2F;bin&#x2F;{grep,egrep,fgrep}
    1728040 -rwxr-xr-x 1 root root     28 Apr 23 12:12 &#x2F;usr&#x2F;bin&#x2F;egrep*
    1728041 -rwxr-xr-x 1 root root     28 Apr 23 12:12 &#x2F;usr&#x2F;bin&#x2F;fgrep*
    1728042 -rwxr-xr-x 1 root root 159024 Apr 23 12:12 &#x2F;usr&#x2F;bin&#x2F;grep*

    $ cat &#x2F;usr&#x2F;bin&#x2F;egrep
    #!&#x2F;bin&#x2F;sh
    exec grep -E &quot;$@&quot;

    $ cat &#x2F;usr&#x2F;bin&#x2F;fgrep
    #!&#x2F;bin&#x2F;sh
    exec grep -F &quot;$@&quot;
</code></pre>
The general point of them being implemented by the same executable still stands.