On Fri, 16 May 2008, vapid wrote:

> Thank you for the quick response Igor.
>
> > You need to use "attrib +R" on .lnk files and "attrib +S" on the
> > plain-text links.
>
> I swear I tried attrib +R on both types of links earlier, but I must
> have only tried the plain-text ones.  It does fix the .lnk's as you
> said.  I'm using these two [slow] commands to fix up my system.
>
> find / \( -name cygdrive -o -name proc -o -name dev \) -prune -o -name \*.lnk 
> -print -exec bash -c 'attrib +R "`cygpath -d \"{}\"`"' \;
> find / \( -name cygdrive -o -name proc -o -name dev \) -prune -o -type f 
> -exec bash -c 'grep "^\\!<symlink>" "{}" && attrib +S "`cygpath -d \"{}\"`" ' 
> \;
>
> They scan through the cygwin root and any disks you have explicitly
> mounted.  I don't think it would actually hurt stuff on the windows side
> of the disk, but I am trying to stay out of those directories.  I'm
> fairly certain the second one is safe everywhere, but the first one
> may +R some non-cygwin links, if you have mounted windows directories.
> This doesn't seem to affect windows; the shortcut still work in explorer.
> The windows created shortcuts don't seem to work in bash with or without
> the +R, which is fine with me.
>
> Maybe someone can come up with a fancier find.  I had to spawn a bash to
> use the && and delay the evaluation of the `cygpath {}`.  There's a lot of
> quoting to deal with spaces in filenames.

You're spawning way too many processes here (though you do have to run one
attrib per file).  I'd go with something like this:

find / \( -name cygdrive -o -name proc -o -name dev \) -prune -o \
       -name \*.lnk -print | \
  cygpath -w -f - | perl -pe 's,\n,\0,' | \
  xargs -tr0 -n1 attrib +R

find / -mindepth 1 -maxdepth 1 \
       \! -name cygdrive \! -name proc \! -name dev -print0 | \
  xargs -r0 grep -lRF '^!<symlink>' | \
  cygpath -w -f - | perl -pe 's,\n,\0,' | \
  xargs -tr0 -n1 attrib +S

(not tested, but should work barring typos).
HTH,
        Igor
-- 
                                http://cs.nyu.edu/~pechtcha/
      |\      _,,,---,,_            [EMAIL PROTECTED] | [EMAIL PROTECTED]
ZZZzz /,`.-'`'    -.  ;-;;,_            Igor Peshansky, Ph.D. (name changed!)
     |,4-  ) )-,_. ,\ (  `'-'           old name: Igor Pechtchanski
    '---''(_/--'  `-'\_) fL     a.k.a JaguaR-R-R-r-r-r-.-.-.  Meow!

"That which is hateful to you, do not do to your neighbor.  That is the whole
Torah; the rest is commentary.  Go and study it." -- Rabbi Hillel

--
Unsubscribe info:      http://cygwin.com/ml/#unsubscribe-simple
Problem reports:       http://cygwin.com/problems.html
Documentation:         http://cygwin.com/docs.html
FAQ:                   http://cygwin.com/faq/

Reply via email to