I've been tracking down a few issues with how Eshell parses its globs. For example: ~ $ echo **/ # Prints all subdirectories of the current dir (good) ~ $ echo '**/' **/ # Prints the literal string (also good) ~ $ echo \**/ # Prints all subdirectories (bad!) There are a few reasons this happens but one of the things that makes this code more brittle is that Eshell defaults to treating characters as globs, and you have to opt out via an 'escape' text property. By inverting this logic, and proactively marking globbing characters with 'eshell-glob-char', it now means that all the rules for determining which characters are globs and which are literals is in em-glob.el, so it should be harder to break in the future.