私は頻繁にファイルのグループのバックアップを行う必要があり、いくつかの大きな同一のファイルを含む多くのサブフォルダーがあります。
これを自動的に検出し、同一のファイルを複数回保存しない圧縮スキーム(.Zip、.7zなど)はありますか?
これが私が思いついた例です:
[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
私もこれを経験しました。
ファイルをTarBallに圧縮する場合、7zのLZMA圧縮は、Tar Ballでの分離が大きすぎると、重複を認識する場合と認識しない場合があります(これは、辞書のサイズやその他のいくつかの機能です)。
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"
それはうまく機能します、それを試してみてください。
私が試した3つのオプションを提案します(Windowsで):
Webサイトのバージョンが異なる10個のフォルダーがありました(。php、。html、。js、。css、 。jpeg、。sqlなど)の合計サイズは1Gb(フォルダーあたり平均100Mb)。標準の7ZipまたはWinRar圧縮では、約400/500Mbのファイルが得られましたが、これらのオプションでは、それぞれ(1)80Mb、(2)100Mb、および(3)170Mbのファイルが得られました。