delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2009/09/05/00:23:28

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 <lee AT veritech DOT com>
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>
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
List-Id: <cygwin.cygwin.com>
List-Subscribe: <mailto:cygwin-subscribe AT cygwin DOT com>
List-Archive: <http://sourceware.org/ml/cygwin/>
List-Post: <mailto:cygwin AT cygwin DOT com>
List-Help: <mailto:cygwin-help AT cygwin DOT com>, <http://sourceware.org/ml/#faqs>
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

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019