title: bash find files not of a specified type
body: <pre><code>/home/ggicci/mydir
   |+ dir_1
   |+ dir_2
   |- file_1.txt
   |- link_1
   |- link_2
  </code></pre>
  
  <p>I want to find all the directories and files but excluding the links. I tried to use <code>find . -maxdepth 1 -type !l \( ! -iname ".*" \) -exec echo {} \;</code>, but <code>find: Arguments to -type should contain only one letter</code>. Have I got to run separated commands like <code>find . -type d ...</code>, <code>find . -type f ...</code>? What if <code>mydir</code> contains files of other types?</p>