I discovered that the architecture dependent directory names in $HOME/.slime/fasl/ contain "non-standard" characters for Unix file names. For example:
/homedir/quam/.slime/fasl/cmu-snapshot 2005-09 (19b)-linux-x86
I understand why this is the case, but it can be somewhat annoying because of the difficulty in properly "escaping" those names in the various Unix shells. For example,
find . -name '*.x86f' | xargs grep '(defun ' grep: ./cmu-snapshot: No such file or directory grep: 2005-09: No such file or directory
Admittedly, this is not a good example, but consider:
find . -name '*.x86f' | xargs rm
This wouldn't be a problem with if we had something like the Scheme-Shell (scsh), but ...
On Mon, 12 Sep 2005, Lynn Quam wrote:
find . -name '*.x86f' | xargs grep '(defun ' grep: ./cmu-snapshot: No such file or directory grep: 2005-09: No such file or directory
Admittedly, this is not a good example, but consider:
find . -name '*.x86f' | xargs rm
Not to delve into the intricacies of Unix shells, but find and xargs both provide facilities specifically to accommodate each other in this case:
find -print0 xargs --null
So, your example would become
find . -print0 -name '*.x86f' | xargs --null rm
Of course, such issues are one of the things that inspire my interest in CL. :)
-A
Linux: The ultimate video game.
Rafał Strzaliński nablaone@gmail.com writes:
find . -name '*.x86f' -print0 | xargs -0 rm
This is GNU findutils specific, of course.
Alan Shutko writes:
RafaÅ StrzaliÅski nablaone@gmail.com writes:
find . -name '*.x86f' -print0 | xargs -0 rm
This is GNU findutils specific, of course.
No, it's a BSD extension, so it at least works on *BSD and Darwin as well. Not that that helps with Solaris, AIX, etc.
Lynn Quam quam@ai.sri.com writes:
find . -name '*.x86f' | xargs grep '(defun '
find . -name "*.x86f" -print0 | xargs -0 grep '(defun '
grep: ./cmu-snapshot: No such file or directory grep: 2005-09: No such file or directory
Admittedly, this is not a good example, but consider:
find . -name '*.x86f' | xargs rm
This wouldn't be a problem with if we had something like the Scheme-Shell (scsh), but ...
though i still think clsh would be a great idea...
Marco Baringer replied:
This wouldn't be a problem with if we had something like the Scheme-Shell (scsh), but ...
though i still think clsh would be a great idea...
Has anyone had experience using the Emacs eshell?
On Thu, 2005-09-15 at 12:24 -0700, Lynn Quam wrote:
Has anyone had experience using the Emacs eshell?
It's neat but incomplete. John Wiegley has long moved on to other projects. I used eshell for a month or two a couple of years ago but had to abandon it and go back to using bash (run via M-x shell). There was a number of reasons why I gave up on eshell. The only one I still remember is lack of support for true piping. Eshell's pipes aren't coroutines like they are in traditional Unixy shells. IIRC, if you do
~ $ foo | bar
eshell reads the entire output of foo into a temp buffer then feeds it to bar. Try this in bash:
| $ yes | head -n 3 | y | y | y | $ time yes | head -n 1000000 | tail -n 4 | y | y | y | y | | real 0m0.086s | user 0m0.045s | sys 0m0.005s
Now try the same thing in Eshell:
| /tmp $ which yes | /usr/bin/yes | /tmp $ which tail | /usr/bin/tail | /tmp $ which ls | eshell/ls is a compiled Lisp function in `em-ls' | /tmp $ yes | head -n 3 | y | y | y | /tmp $ yes | head -n 3
The first time around it prints three y's. When I call it the second time it hangs, leaving me to Ctrl-C out of it.
"M-x version" reports this for me: "GNU Emacs 21.4.1 (x86_64-redhat-linux-gnu, X toolkit, Xaw3d scroll bars) of 2005-05-18 on dolly.build.redhat.com"
Other lispy shells that I know of but have not tried are
- http://www.scsh.net/ - http://lush.sourceforge.net/ - http://clisp.cons.org/clash.html