An intro to finding things in Linux
<p><pre><code>    find /home -type f -name test.*
</code></pre>
This will silently fail if you happen to have one file that matches test.* (like test.txt) in the current working directory, because test.* will be replaced by the name of this file and that's what find will see.<p>This will fail in zsh if no files match in the current working directory, because globbing will fail.<p>You need to quote this to avoid unintuitive results, in any shell.<p><pre><code>    find /home -type f -name 'test.*'
</code></pre>
Not doing this will probably work most of the time, but it will probably confuse you the one time it won't and drive you crazy if you don't realize what is going on.<p>I've become very aware of this kind of things by using zsh which is stricter with failing globs than bash. Also quote anything that contains {, }, [, ], (, ), ?, ! or $ for similar reasons. Beware of ~ too. And & or | obviously, and also ;.<p>Do yourself a favor, quote <i>the hell</i> everything in shells that's not simple, alphanumeric strings or option names. Even if it's only alphanumeric actually, if it is a parameter value, quote it. This way, when you edit your command and somehow add a special character, you are already covered. It also makes your values stand out, making your command arguably easier to read because they might look more uniform.<p>edit: and quote with single quotes, unless you need variable expansion or to quote simple quotes (but be extra careful then)