Piping results of Linux find perm to ls shows conflicting output
<p>I am practicing the unix <code>find</code> command and filtering based on permissions. This is what an <code>ls -al</code> on my practice dir looks like:</p>

<pre><code>[tom@t-degroot1 ~]$ ls -al
total 44
drwx------. 8 tom  tom  4096 Dec 13 09:08 .
drwxr-xr-x. 7 root root   63 Nov  5 16:38 ..
-rw-------. 1 tom  tom  9547 Dec 15 08:16 .bash_history
-rw-r--r--. 1 tom  tom    18 Oct 26 00:36 .bash_logout
-rw-r--r--. 1 tom  tom   193 Oct 26 00:36 .bash_profile
-rw-r--r--. 1 tom  tom   231 Oct 26 00:36 .bashrc
drwxrwxr-x. 2 tom  tom    21 Dec 12 22:14 chattrdir
-rw-rw-r--. 1 tom  tom     0 Dec 13 09:03 file1
-rw-rw-r--. 1 tom  tom     0 Dec 13 09:03 file2
drwxr-xr-x. 2 tom  tom  4096 Dec 11 14:36 fileext
-rw-------. 1 tom  tom   164 Dec 14 09:25 .lesshst
drwxr-xr-x. 4 tom  tom    37 Dec 20  2015 .mozilla
drwxrw----. 3 tom  tom    18 Dec  8 20:20 .pki
drwx------. 2 tom  tom    24 Nov  7 09:51 .ssh
-rw-------. 1 tom  tom  3639 Dec  8 20:56 .viminfo
drwxrwxr-x. 2 tom  tom  4096 Dec  8 21:26 wildcard
</code></pre>

<p>I do the find command to search based on permissions:</p>

<pre><code>[tom@t-degroot1 ~]$ find . -maxdepth 1 -perm /004
./.bash_logout
./.bash_profile
./.bashrc
./.mozilla
./chattrdir
./file1
./file2
./fileext
./wildcard
</code></pre>

<p>Next to see if these are indeed the only files which have the read permission bit set for 'others', I pipe the output to <code>ls</code>:</p>

<pre><code>[tom@t-degroot1 ~]$ find . -maxdepth 1 -perm /o+r | ls -al
total 44
drwx------. 8 tom  tom  4096 Dec 13 09:08 .
drwxr-xr-x. 7 root root   63 Nov  5 16:38 ..
-rw-------. 1 tom  tom  9584 Dec 15 08:23 .bash_history
-rw-r--r--. 1 tom  tom    18 Oct 26 00:36 .bash_logout
-rw-r--r--. 1 tom  tom   193 Oct 26 00:36 .bash_profile
-rw-r--r--. 1 tom  tom   231 Oct 26 00:36 .bashrc
drwxrwxr-x. 2 tom  tom    21 Dec 12 22:14 chattrdir
-rw-rw-r--. 1 tom  tom     0 Dec 13 09:03 file1
-rw-rw-r--. 1 tom  tom     0 Dec 13 09:03 file2
drwxr-xr-x. 2 tom  tom  4096 Dec 11 14:36 fileext
-rw-------. 1 tom  tom   164 Dec 14 09:25 .lesshst
drwxr-xr-x. 4 tom  tom    37 Dec 20  2015 .mozilla
drwxrw----. 3 tom  tom    18 Dec  8 20:20 .pki
drwx------. 2 tom  tom    24 Nov  7 09:51 .ssh
-rw-------. 1 tom  tom  3639 Dec  8 20:56 .viminfo
drwxrwxr-x. 2 tom  tom  4096 Dec  8 21:26 wildcard
</code></pre>

<p>You see that the following files do <strong>not</strong> have the read permission set for others even though I only want the files which do have the read permission bit set for others:</p>

<pre><code>-rw-------. 1 tom  tom  9584 Dec 15 08:23 .bash_history
rw-------. 1 tom  tom   164 Dec 14 09:25 .lesshst
drwxrw----. 3 tom  tom    18 Dec  8 20:20 .pki
drwx------. 2 tom  tom    24 Nov  7 09:51 .ssh
-rw-------. 1 tom  tom  3639 Dec  8 20:56 .viminfo
</code></pre>

<p>How is it possible these files come up in the output? I only pipe the files which are readable according to my find search to the <code>ls</code> command and <code>ls</code> shows they are not readable.</p>