Mail Archives: cygwin/2008/05/16/23:12:52
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/
|\ _,,,---,,_ pechtcha AT cs DOT nyu DOT edu | igor AT watson DOT ibm DOT com
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/
- Raw text -