zsh-users
 help / color / mirror / code / Atom feed
* noglob + find
@ 2010-10-12 19:09 Benjamin R. Haskell
  2010-10-12 19:43 ` Oliver Kiddle
  2010-10-12 20:12 ` Peter Stephenson
  0 siblings, 2 replies; 3+ messages in thread
From: Benjamin R. Haskell @ 2010-10-12 19:09 UTC (permalink / raw)
  To: Zsh Users

At some point recently, I gave in and tried 'noglob' (usually preferring 
to quote things explicitly, even if it caused occasional annoyance). 
But now I've run into trouble with:

alias find='noglob find'

$ find /tmp/tmp.* -name *.c -mtime -1
find `/tmp/tmp.*': No such file or directory

Is there a nice way to specify 'noglob'-like behavior for the arguments 
after the first dashed argument?  So that I can specify glob patterns as 
the directories, but not have to quote the 'find' patterns?

-- 
Best,
Ben


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: noglob + find
  2010-10-12 19:09 noglob + find Benjamin R. Haskell
@ 2010-10-12 19:43 ` Oliver Kiddle
  2010-10-12 20:12 ` Peter Stephenson
  1 sibling, 0 replies; 3+ messages in thread
From: Oliver Kiddle @ 2010-10-12 19:43 UTC (permalink / raw)
  To: Benjamin R. Haskell; +Cc: Zsh Users

"Benjamin R. Haskell" wrote:
> alias find='noglob find'
> 
> $ find /tmp/tmp.* -name *.c -mtime -1
> find `/tmp/tmp.*': No such file or directory
> 
> Is there a nice way to specify 'noglob'-like behavior for the arguments 
> after the first dashed argument?  So that I can specify glob patterns as 
> the directories, but not have to quote the 'find' patterns?

No.

What I do is use the expand-word widget to expand the first glob. So
with the cursor positioned after the first *, I press Ctrl-X,* and it
gets expanded on the command-line.

Oliver


^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: noglob + find
  2010-10-12 19:09 noglob + find Benjamin R. Haskell
  2010-10-12 19:43 ` Oliver Kiddle
@ 2010-10-12 20:12 ` Peter Stephenson
  1 sibling, 0 replies; 3+ messages in thread
From: Peter Stephenson @ 2010-10-12 20:12 UTC (permalink / raw)
  To: Zsh Users

On Tue, 12 Oct 2010 15:09:18 -0400 (EDT)
"Benjamin R. Haskell" <zsh@benizi.com> wrote:
> alias find='noglob find'
> 
> $ find /tmp/tmp.* -name *.c -mtime -1
> find `/tmp/tmp.*': No such file or directory
> 
> Is there a nice way to specify 'noglob'-like behavior for the arguments 
> after the first dashed argument?

You have to do it other way round: expand the bits you did want globbing
after all.

alias find='noglob find'
'find'() { command find ${~1} "${(@)argv[2,-1]}"; }

(working around all the usual exciting interactions between functions and aliases)
which you can make smarter, to find the first argument with a -.

'find'() { 
  integer i=${argv[(i)-*]}
  command find ${~argv[1,i-1]} "${(@)argv[i,-1]}"
}

is the first-pass version.

-- 
Peter Stephenson <p.w.stephenson@ntlworld.com>
Web page now at http://homepage.ntlworld.com/p.w.stephenson/


^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2010-10-12 20:12 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-10-12 19:09 noglob + find Benjamin R. Haskell
2010-10-12 19:43 ` Oliver Kiddle
2010-10-12 20:12 ` Peter Stephenson

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).