* 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).