delorie.com/archives/browse.cgi   search  
Mail Archives: cygwin/2006/10/29/17:09:27

X-Spam-Check-By: sourceware.org
To: cygwin AT cygwin DOT com
From: Lloyd Zusman <ljz AT asfast DOT com>
Subject: Re: Changing Windows "hidden" and "system" attributes?
Date: Sun, 29 Oct 2006 22:08:57 +0000 (UTC)
Lines: 57
Message-ID: <loom.20061029T225001-758@post.gmane.org>
References: <loom DOT 20061028T031119-796 AT post DOT gmane DOT org> <Pine DOT GSO DOT 4 DOT 63 DOT 0610291603480 DOT 22731 AT access1 DOT cims DOT nyu DOT edu>
Mime-Version: 1.0
User-Agent: Loom/3.14 (http://gmane.org/)
X-IsSubscribed: yes
Mailing-List: contact cygwin-help AT cygwin DOT com; run by ezmlm
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

Igor Peshansky <pechtcha <at> cs.nyu.edu> writes:
> 
> On Sat, 28 Oct 2006, Lloyd Zusman wrote:
> 
> > Well, for one thing, things like this don't work:
> >and this is what
> >   find . -type f -print | xargs attrib
> >
> > Yes, I know that I could put a wrapper script around attrib to apply
> > cygpath to the argument, to name but one of several ways to solve this.
> > In fact, I have already done this, thereby making my own
> > cygwin-compliant analog to attrib.
> 
> find . -type f -print | cygpath -w -f- | xargs attrib
> 
> Won't work with -print0, but you get the idea.
> 	Igor

Thank you.  I've tried this, and the -L1 argument is needed
with xargs.  But even with that, the pathnames get screwed
up for subdirectories ...

  $ pwd
  /home/me
  $ cygpath -w `pwd`
  e:\home\me
  $ find . -type f -print | cygpath -w -f- | xargs -L1 attrib
  A          E:\home\me\.bash_history
  A          E:\home\me\.cvspass
  File not found - .elinksbookmarks
  File not found - .elinkscookies
  File not found - .elinkselinks.conf
  File not found - .elinksglobhist
  File not found - .elinksgotohist
  A          E:\home\me\.emacs
  File not found - .fluxboxfbrun_history
  ... etc. ...

Because of cygpath, filenames such as .elinks/bookmarks and
.fluxbox/fbrun_history are passed to xargs like this:
.elinks\bookmarks and .fluxbox\fbrun_history.

Then xargs invokes attrib via a subshell, and therefore,
shell meta-character handling is performed. That causes
the backslashes in those path names to be removed before
they get passed to the attrib command, thereby causing
that program to see incorrect file names.

Because of this, a hacky wrapper script for attrib like the
one I wrote in my earlier message is still needed, unfortunately.

-- 
 Lloyd Zusman
 ljz AT asfast DOT com
 Lloyd Zusman




--
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 -


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