我正在尝试压缩一个rootdir
包含许多subdir_i
文件夹树的大文件,如下所示:
./rootdir
./rootdir/subdir_1
./rootdir/subdir_2
...
我希望将其输出到单个压缩存档,但每个子目录都在它自己的 tar 存档中:
rootdir.tar.xz # containing:
subdir_1.tar
subdir_2.tar
我尝试了以下方法:
for foo in `find rootdir -maxdepth 1 -name "subdir_*" -type d`
do
tar --create --verbose --file=- --directory="rootdir" `basename ${foo}`
# in shorter form: tar -cvf - -C rootdir subdir_i
done | xz -zc9 > rootdir.tar.xz
它确实将子目录隔离到 xz 中,但内部只有一个 tar 存档,只有最后一个目录:
rootdir.tar.xz
rootdir.tar # containing subdir_2/
但是,该存档的大小与整个 rootdir 树的压缩一致。任何想法为什么会这样以及如何让它做我想做的事情(不使用中间档案)?