My solution would have been:

find -type f -exec echo "" \> {} \;

-wes

On Mon, Aug 15, 2011 at 3:48 PM, Jameson Williams <
jameson.h.willi...@intel.com> wrote:

> On 08/15/2011 03:47 PM, Sam Hart wrote:
> > On Mon, Aug 15, 2011 at 6:22 PM, Jameson Williams
> > <jameson.h.willi...@intel.com>  wrote:
> >> I haven't been able to get this one yet.
> >>
> >> Challenge: A one-line statement (pipes okay, but explicit loops not)
> >> that empties all found files (as for debugging with /var/log, perse).
> >>
> >> This is close, but has a loop:
> >>
> >>      find -type f | while read file; do :>$file; done
> >>
> >> This seems like it might work, but doesn't:
> >>
> >>      find -type f -exec cat /dev/null \>  {} \;
> > Seems like a silly question as there's *no* way to technically avoid
> > loops (even if you're not doing it in your line, the underlying code
> > is using a loop), but I'd probably use xargs and truncate:
> >
> > ls | xargs truncate --size=0
> >
> > Use find instead of ls if you want something more fancy like
> > recursion. Might be pretty fun to do as root on / :-)
> >
> >                                        ---Sam
> Technically true regarding loops, although I feel they cheapen the
> aesthetic appeal of the one-liner. :-) I hadn't encountered truncate,
> that works great!
>
> Thanks,
> Jameson
>
> _______________________________________________
> PLUG mailing list
> PLUG@lists.pdxlinux.org
> http://lists.pdxlinux.org/mailman/listinfo/plug
>
_______________________________________________
PLUG mailing list
PLUG@lists.pdxlinux.org
http://lists.pdxlinux.org/mailman/listinfo/plug

Reply via email to