Emacs bug report logs - #4406
23.1; eshell quoting problem with -exec rm {} \;

Previous Next

Package: emacs;

Reported by: "Xah Lee" <xah <at> xahlee.org>

Date: Fri, 11 Sep 2009 19:05:08 UTC

Severity: normal

Done: Chong Yidong <cyd <at> stupidchicken.com>

Bug is archived. No further changes may be made.

Toggle the display of automated, internal messages from the tracker.

View this report as an mbox folder, status mbox, maintainer mbox


Report forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4406; Package emacs. (Fri, 11 Sep 2009 19:05:08 GMT) Full text and rfc822 format available.

Acknowledgement sent to "Xah Lee" <xah <at> xahlee.org>:
New bug report received and forwarded. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Fri, 11 Sep 2009 19:05:08 GMT) Full text and rfc822 format available.

Message #5 received at submit <at> emacsbugs.donarmstrong.com (full text, mbox):

From: "Xah Lee" <xah <at> xahlee.org>
To: <bug-gnu-emacs <at> gnu.org>
Subject: 23.1; eshell quoting problem with -exec rm {} \;
Date: Fri, 11 Sep 2009 11:59:30 -0700
this is probably a bug.

when running eshell in Windows, i do

c:\Users\xah\web>find -name "*el" -exec rm {} \;
find -name "*el" -exec rm {} \;
find: missing argument to `-exec'

it turns out, one needs to quote the ending semicolon.

This does not work:
find -name "*el" -exec rm {} \\;

This works:
find -name "*el" -exec rm {} ';'

It appears to me, this seems to be a bug, since
-exec rm {} \;
is a standard idiom in bash, and no reason that shouldn't work.

(Pascal J Bourguignon gave the correct solution. This issue is discussed a 
bit at gnu.emacs.help here
http://groups.google.com/group/gnu.emacs.help/browse_frm/thread/46eb4e95fcbc1fb9? )

 Xah
∑ http://xahlee.org/

Information forwarded to bug-submit-list <at> lists.donarmstrong.com, Emacs Bugs <bug-gnu-emacs <at> gnu.org>:
bug#4406; Package emacs. (Sat, 12 Sep 2009 08:35:06 GMT) Full text and rfc822 format available.

Acknowledgement sent to Eli Zaretskii <eliz <at> gnu.org>:
Extra info received and forwarded to list. Copy sent to Emacs Bugs <bug-gnu-emacs <at> gnu.org>. (Sat, 12 Sep 2009 08:35:06 GMT) Full text and rfc822 format available.

Message #10 received at 4406 <at> emacsbugs.donarmstrong.com (full text, mbox):

From: Eli Zaretskii <eliz <at> gnu.org>
To: Xah Lee <xah <at> xahlee.org>, 4406 <at> emacsbugs.donarmstrong.com
Subject: Re: bug#4406: 23.1; eshell quoting problem with -exec rm {} \;
Date: Sat, 12 Sep 2009 11:30:39 +0300
> From: "Xah Lee" <xah <at> xahlee.org>
> Date: Fri, 11 Sep 2009 11:59:30 -0700
> Cc: 
> 
> c:\Users\xah\web>find -name "*el" -exec rm {} \;
> find -name "*el" -exec rm {} \;
> find: missing argument to `-exec'
> 
> it turns out, one needs to quote the ending semicolon.
> 
> This does not work:
> find -name "*el" -exec rm {} \\;
> 
> This works:
> find -name "*el" -exec rm {} ';'
> 
> It appears to me, this seems to be a bug, since
> -exec rm {} \;
> is a standard idiom in bash, and no reason that shouldn't work.

Eshell is not Bash, and on Windows, it treats the backslash as a
directory separator (unlike Bash).

So I think this is not a bug, just a platform-specific behavior that
needs to be learned.



bug closed, send any further explanations to "Xah Lee" <xah <at> xahlee.org> Request was from Chong Yidong <cyd <at> stupidchicken.com> to control <at> emacsbugs.donarmstrong.com. (Sun, 13 Sep 2009 22:40:06 GMT) Full text and rfc822 format available.

bug archived. Request was from Debbugs Internal Request <owner <at> emacsbugs.donarmstrong.com> to internal_control <at> emacsbugs.donarmstrong.com. (Mon, 12 Oct 2009 14:24:13 GMT) Full text and rfc822 format available.

Previous Next


Emacs bug tracking system
Copyright (C) 1999 Darren O. Benham, 1997,2003 nCipher Corporation Ltd, 1994-97 Ian Jackson.