X-Recipient: archive-cygwin AT delorie DOT com X-SWARE-Spam-Status: No, hits=-2.2 required=5.0 tests=AWL,BAYES_00,SPF_HELO_PASS X-Spam-Check-By: sourceware.org Message-ID: <4AA1E7AE.20902@veritech.com> Date: Sat, 05 Sep 2009 00:23:10 -0400 From: Lee Rothstein Reply-To: lee AT veritech DOT com User-Agent: Thunderbird 2.0.0.23 (Windows/20090812) MIME-Version: 1.0 To: cygwin AT cygwin DOT com Subject: Re: Cygwin 'find' does not support the '-L' predicate? References: <4AA1DFE9 DOT 9070803 AT veritech DOT com> <4AA1E430 DOT 9090607 AT byu DOT net> In-Reply-To: <4AA1E430.9090607@byu.net> Content-Type: text/plain; charset=ISO-8859-1; format=flowed Content-Transfer-Encoding: 7bit X-IsSubscribed: yes Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm List-Id: List-Subscribe: List-Archive: List-Post: List-Help: , Sender: cygwin-owner AT cygwin DOT com Mail-Followup-To: cygwin AT cygwin DOT com Delivered-To: mailing list cygwin AT cygwin DOT com Eric Blake wrote: > -----BEGIN PGP SIGNED MESSAGE----- > Hash: SHA1 > > According to Lee Rothstein on 9/4/2009 9:50 PM: >> The following, which I assume (according to man and info) will >> find executables that are links, does not work at all: >> >> find -L "$PWD" -maxdepth 1 -type f -executable >> >> Or, is this pilot error? > > Pilot error. -L works just fine. I got the terminiology all wrong but find on my system does not allow -L Here what works: # '-follow' is supposed to be deprecated, but the replacement # '-L' specified in 'man' and 'info' pages does not appear to # exist in Cygwin 'find' version 4.5.4 find "$PWD" -maxdepth 1 -type f -follow -executable | gawk ' If I replace '-follow' with '-L' it tells me : find: unknown predicate `-L' > Also, it is shorter to use . than > "$PWD" (for that matter, GNU find has an implicit . if you don't specify a > directory). Nope. The line is from a larger script and I need rooted paths. > I think you're asking the wrong question, though - if what > you really want is to find all symlinks whose targets are executables, try > this: No, I want to find all files whether normal or links that are executable. Thanks for your help, and sorry about my prior confusion. The larger script, 'rwhich', finds all commands that match an extended regular expression. E.g.: $ rwhich '^e_[bm]?s$' /local/Scripts/e_bs /local/Scripts/e_ms /local/Scripts/e_s It works, now, and I've needed this for a long time. Glad it finally works. Now, if I can only figure out how not to be bitten by Comcast's motherlovin' bandwidth throttleing while I'm updating Cygwin. Sigh! -- Problem reports: http://cygwin.com/problems.html FAQ: http://cygwin.com/faq/ Documentation: http://cygwin.com/docs.html Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple