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 中单独压缩每个文件的主要内容,如果未能解决你的问题,请参考以下文章