Emacs: eshell pains

By Xah Lee. Date: . Last updated: .

Note: eshell is similar to bash, but is not a bash emulator.

Complicated bash commands involving pipe or escape may not work in eshell, or need modification.

I recommend Alt+x shell if you are beginner.

Use eshell only for simple routine unix commands, or if you are emacs expert. [see Emacs: eshell]

Here's some random collection of problems of using eshell. (may be because i don't understand eshell)

in shell, i can run this to convert all gif to png:

find . -name "*gif" | xargs -l -i basename "{}" ".gif" | xargs -l -i  convert "{}.gif" "{}.png"

but in eshell, i get this error:

convert: unable to open image `.gif': No such file or directory.
convert: missing an image filename `.png'.
convert: unable to open image `.gif': No such file or directory.
convert: missing an image filename `.png'.

find problem?

in emacs eshell, why the following doesn't work?

find . -name "*bmp"
~/web/xahlee_org/math/i/bejeweled $ find . -name "*bmp"
/usr/bin/find: paths must precede expression: x183313.bmp
Usage: /usr/bin/find [-H] [-L] [-P] [-Olevel] [-D help|tree|search|stat|rates|opt|exec] [path...] [expression] 

[https://plus.google.com/b/113859563190964307534/112757647855302148298/posts/f2x4JnbGsDf]

Andrew Hyatt says: Try echoing to make sure that eshell is doing what you think. Or `set-trace' the call-process call to see what exactly is getting run.

, it works now. No idea why.