|I can only reproduce on one Linux, the other one reacts normally. Both are Red Hats, both use Bash as shell ... Versions of Red Hat are slightly different though.|
edit: Issue is reported a lot, but no obvious solution to it. It just needs to work, end of the line. There's no reason it shouldn't, apart from a bug or a failed Linux installation.
edit2: As I sort of thought, it's the same bug as the one you can get from LS commands and such, when you have too many (or too large) files being queried. It may be related to Trash as well. If I do this :
if [ -f xg* ]; then; echo f; fi
This command does not show any error (but also no output). I do not have any file named xg* in that directory. So, all OK.
... But, when I do this:
if [ -f x* ]; then; echo f; fi
It shows the error, and stops. I currently have files named x* in them, which are pretty big. I also HAD other files named like that, but they are gone (and from Trash as well). And that were a lot of them, no big, but a lot. The ones remaining are not a lot, but big. So, no problem with this or that Linux, it's a File System querying issue.