linux:如何在归档 tar/cpio/...other 中单独压缩每个文件

Posted

技术标签:

【中文标题】linux:如何在归档 tar/cpio/...other 中单独压缩每个文件【英文标题】:linux : how to compress each file individually in an archive tar/cpio/...other 【发布时间】:2014-01-15 07:21:41 【问题描述】:

我正在搜索如何将每个文件压缩成一个存档。

例如:fic1.txt fic2.log fic3.srt

我想制作一个存档“fics.tar”,每个文件单独压缩到其中,并重命名文件。

存档应包含:fic1.txt.gz fic2.log.gz fic3.srt.gz

tar/pax/cpio 程序的问题是我们不能直接这样做,我不想压缩硬盘上的文件(或它们的副本),它必须在内存中使用缓冲区完成才能与管道一起使用。

serverX 上的示例:./compress_and_tar fic1.txt fic2.log fic3.srt | ssh server1 "tar -x"

结果:server1 上的 fic1.txt.gz fic2.log.gz fic3.srt.gz,serverX 上只有硬盘读数,零写入。

你有想法吗? 谢谢

【问题讨论】:

你为什么要这样做? 我需要通过 ssh 将文件从一台服务器传输到另一台服务器,但只有一个流程:只有一个到目标服务器的连接(如果我通过文件打开 1 个 ssh 连接,传输时间会爆炸) .文件必须在目标服务器上进行压缩。这就是为什么我在传输之前 进行压缩:文件更小=> 传输时间减少但是如果我在传输之前压缩整个存档,我必须解压缩存档,然后重新压缩文件。 .. 效率不高。 【参考方案1】:

使用更适合的存档类型。 zip(更便携)或 7z(更好的压缩)。这些格式总是单独压缩每个成员。

【讨论】:

我不知道怎么用 zip 或 7zip 来做。它只压缩文件,它不会制作我不想要的存档和存档(zip/tar 或其他)压缩,而是压缩包含文件的存档

以上是关于linux:如何在归档 tar/cpio/...other 中单独压缩每个文件的主要内容,如果未能解决你的问题,请参考以下文章

教你在Linux中如何归档和备份

教你在Linux中如何归档和备份

Linux归档压缩文件(tar | gzip)

在 Linux 上打包(归档)Python 项目

linux之文件归档与解压缩

Linux打包和压缩