June 14, 2008

bash: xargs is your friend

For some reason, since I set up my new machine, when I p4 sync I would get directories that aren't writeable. This means that lzx files won't compile since the swf needs to be written into the directory.

To work-around this, I tried to just set permissions on all the directories. My first attempt (below), didn't work.... anyone know why? the second one is more verbose and did work.

$ find * -type d | chmod a+w
chmod: missing operand after `a+w'
Try `chmod --help' for more information.

Verbose work-around:
$ for i in * ; do if [ -d $i ]; then chmod a+w $i ; fi ; done

A better answer: the chmod command does not accept arguments on stdin, so you can't just pipe a file list to it:

$ find . -type d -print0 | xargs -0 chmod a+w

xargs is your friend

Posted by Sarah at June 14, 2008 12:17 PM

Comments
Post a comment









Remember personal info?