-name only matches against a file's name (the basename of a multi-component pathname). There are two characters that are forbidden in UNIX filenames: / (which is reserved as the pathname component delimiter) and the null byte (which the C standard library uses to terminate strings). Since the pattern argument in -name '/home/etc/files/ABC*' contains one of the illegal characters, / , that usage of -name can never match anything and will always evaluate falsely, hence zero matches.