备份文件与许多重复的文件

我经常需要做一组文件的备份,其中有许多子文件夹,其中包含几个大的,相同的文件。

压缩scheme(.zip,.7z等),可以自动检测到这一点,而不是多次存储相同的文件?

是的,这是可能的: https : //superuser.com/questions/479074/why-doesnt-gzip-compression-eliminate-duplicate-chunks-of-data

这是我想出的一个例子:

 [jay test]$ tree . . `-- compressme |-- a | `-- largefile (10MB) `-- b `-- largefile (10MB, identical to ../a/largefile) 3 directories, 2 files [jay test]$ du -sh compressme/ 21M compressme/ [jay test]$ tar -cf compressme.tar compressme/ [jay test]$ du -sh compressme.tar 21M compressme.tar [jay test]$ lzma -9 compressme.tar [jay test]$ du -sh compressme.tar.lzma 11M compressme.tar.lzma 

我也是经历过这个。

如果你将文件压缩成一个Tar Ball,7z的LZMA压缩可能会或者可能不会识别重复的内容,如果它们在Tar Ball中分离得太远(这是字典大小和其他一些function的函数)。

7z有一个收集重复的WIM格式,那么你可以在那里使用正常的LZMA压缩。 Windows命令行示例:

 7z a -twim "Example.wim" * 7z a -t7z -m0=lzma -mx=9 -mfb=64 -md=32m -ms=on -mhc=on "Example.7z" "Example.wim" del "Example.wim" 

它运作良好,给它一个去。

我build议我已经尝试了3个选项(在Windows中):

  1. 7Zip LZMA2压缩,字典大小为1536Mb
  2. WinRar“固体”文件
  3. 7zip WIM文件

我有10个不同版本的网站文件夹(文件如.php.html.js.css.jpeg.sql等),总大小为1Gb( 平均每个文件夹100Mb )。 虽然标准的7zip或WinRar压缩给我一个约400 / 500Mb的文件,这些选项给了我一个(1) 80Mb ,(2)100Mb和(3)170Mb的文件。