2010年4月25日星期日

Linux下的分卷压缩

1、 tar

比如要压缩一个目录 film,在 film 目录的上层目录:
tar czvpf film | split -d -b 80m - film_
将 film 目录分卷压缩,分卷大小80m, 输出文件名为 film_00 film_01 film_02
如果 "film_" 不加则输出 x00 x01 x02...
如果不加 "-d" 则后缀为 aa ab ac ...

解压:
cat film_* | tar xzvpf - -C a
将分卷压缩的文件加压到 a 目录下,目录结构变成了 a/film
a 可以替代为 "."
(如果直接当前目录下释放,可以间化为
cat film_* | tar xzvpf

以上操作保存了film这个目录名,如果不想保留该目录名,则可以:

压缩:
cd film && find . | xargs tar czvp | split -d -b 80m film_
解压:
cat film_* | tar xzvpf - -C a


2、用7z

同样用以上例子

在film上层目录操作,保留film目录名
压缩: 7z a film.7z film -v80m
解压到当前目录: 7z x film.7z.001
解压到目录a: mkdir a && cd a && 7z x ../film.7z.001
或者 7z -oa x film.7z.001

不保留film目录名
压缩 cd film && find . | xargs 7z a film.7z -v80m
解压 7z -oa x film.7z.001

单纯采用7z的话,文件的权限(拥有者)属性会丢失, 采用如下办法则可以保留:
压缩:
tar cf - film | 7z a -si film.tar.7z -v80m
解压缩:
7z x -so film.tar.7z.001 | tar xf -

没有评论:

发表评论