[OmniOS-discuss] multithreaded gzip (or equivalent) and moving some files while preserving file trees
Valrhona
valrhona at gmail.com
Sat Aug 17 03:47:24 UTC 2013
y> I am not sure about repositories, but there are projects such as
> pigz and pbzip2 which are parallelized interfaces to the same
> compression libraries, and easily compilable
Thanks! Looks like pigz and pbzip2 are in the libraries; thanks Eric
for the tip!
> In some versions of pigz there was a problem with compression of
> multiple filename arguments (some state was not cleared, so they
> were processed as if concatenated), so for predictable results
> better script up loops and call each time for one argument :)
At the moment, I am just interested in a single file, piped in from
zfs send. Would the problem you mention affect me?
> You can look into examples on cpio manpage - it takes results of
> the find command as input, so you can "find" piles according to
> the name pattern(s) you need, and as part of their path they would
> include the directories which contain them. If you need the whole
> directory structure, try "find -type d" - though you might need
> to somehow tell cpio to only archive the directories and not their
> contents recursively. Or if you're doing this locally - just create
> the structure at new root node with "mkdir -p". For remote sending,
> you might do the same and then archive this empty structure ;)
So I found an easier solution: rsync
for files with extension .xyz
rsync -avgR --include='*/' --include='*.xyz' --exclude='*'
--remove-source-files /src /dest
This recreates the whole subdirectory structure, including (many)
directories which have no files of type .xyz.
To remove them, in /dest
find . -type d -empty -exec rmdir {} \;
You have to run this a few times because only one level of empty
directory gets removed each time, so if you have empty directories
that are subdirectories that then become empty, etc. etc.
Thanks!
Peter
More information about the OmniOS-discuss
mailing list