Two powerfull programs (star & sfind) announce their marriage that
        results in a feature enhanced star.

        This code integration was originally planned for the star-1.6
        development cycle, but it turned out that it is possible to
        implement a subset of the full set of features without causing
        any harm to the rest of the code as long as the find code is
        not actually used.

        To the beginning of the 1980's, AT&T included a simplified cpio
        implementation to find(1) but this venture did not result in added
        value (there was only a minor speed up by avoiding a second stat(2)
        for every file) and the cpio archive format is outdated since a while.

        As a sice effect, the functionality of the find(1) program is
        now available as a library implementation.

        BTW: Although the sfind(1) source is written more cleanly than the
        UNIX find(1) source, it did take more time to create the library
        code from the original sfind(1) source than it took to write sfind
        from scratch.

        The integrated find code has been enhanced compared to the
        standard sfind(1) code by the following primary operators:

        -chgrp <gname>
                The primary always evaluates as true; it sets  the
                group of the file to gname.

        -chmod <mode>
                The primary always evaluates as true; it sets  the
                permissions  of  the file to mode.  Octal and sym-
                bolic permissions are accepted for  mode  as  with
                chmod(1).

                Note that this version of star does not yet implement
                the 'X' character from chmod(1), but uture versions of
                star will add support for 'X' permission mods.

                Meanwhile you could use something like:

                star -c -find . ( -type d -chmod a=rx -o -chmod a=r ) 

        -chown <uname>
                The primary always evaluates as true; it sets  the
                owner of the file to uname.

        -false
                The primary always evaluates as false;  it  allows
                to  make  the  result  of the full expression dif-
                ferent from the result of a part  of  the  expres-
                sion.

        -true
                The primary always evaluates as true; it allows to
                make  the  result of the full expression different
                from the result of a part of the expression.

        The first three operators allow to modify the file meta data
        between the time when star fetches the meta data from the
        filesystem or from the archive and the time when star evaluates
        the file meta data while adding the file to the archive or
        extracting the file to the filesystem.

        The last two operators make it more convenient to use find(1)
        expressions to control an archiver like star.

        The basic idea behind the find(1) integration is:

        Define a find expression and let star evaluate the expression
        for every file as the first possible "filter" operation.
        If the "find expression" returns TRUE for the current file,
        this file is either archived, extracted, diffed or listed
        as usual.
        If the "find expression" returns FALSE for the current file,
        the file is skipped.

        Note that the find primaries -chgrp/-chown/-chmod modify
        the file meta data as a side effect.



        New option -find acts as a separator between the "star" command line
        interface and the "sfind" command line interface.

        To the left of the -find option, star accepts well known
        star options from the past.

        To the right of the -find option, star expects a list of path
        names followed by a find(1) expression.

        As with future star-1.6 versions of star, star will allow more
        new features, it is possible to omit the find(1) expression.
        This results in the same behavior as if

                star ... -find <path list> -true

        had been specified.

        For more information, check the star and the sfind man page.

        Star intermediate -find implementation currently suffers from
        the following problems:

        -       If the archive is stdin or stdout, star redefines
                stdin or stdout. As 'find -exec ...' propagates
                stdin/stdout/stderr to the called program, this
                causes unplanned problems.

        -       If the archive is stdout, star redefines stdout.
                As 'find -print', 'find -printnnl' and 'find -ls'
                outputs to stdout, this also caused unplanned problems.

        -       Find primaries like '-linkedto' cannot be implemented in
                extract/list mode as they need to wo preparation work
                on the local filesystem that cannot be converted to
                work on an archive.

        -       find options like -H -L -P are not yet implemented
                in star -find mode


ftp://ftp.berlios.de/pub/star/alpha/star-1.5a69.tar.bz2

Jörg

-- 
 EMail:[EMAIL PROTECTED] (home) Jörg Schilling D-13353 Berlin
       [EMAIL PROTECTED]                (uni)  
       [EMAIL PROTECTED]        (work) Blog: http://schily.blogspot.com/
 URL:  http://cdrecord.berlios.de/old/private/ ftp://ftp.berlios.de/pub/schily
_______________________________________________
opensolaris-discuss mailing list
[email protected]

Reply via email to