質問

異なるパスに2つの同一ファイルを含むzipアーカイブを作成しています。 ZIPアーカイブ形式は、ハードリンクのUNIXコンセプトに似たものをサポートしていますか?これにより、ファイルを1回だけ(節約)保存する機能を意味しますが、そのデータブロブをzipアーカイブ内の2つの異なるパスにインデックスすることを意味します。

ファイル形式がこれをサポートしている場合、Ubuntuで無料ツールを使用してそのようなアーカイブを作成するにはどうすればよいですか?

役に立ちましたか?

解決

いいえ、 zipファイル形式 これをサポートしていません。これは、ローカルファイルヘッダーに、その名前を含むファイルに関する情報が含まれており、すぐにファイルの圧縮データが続くためです。 2つの異なるローカルファイルヘッダーが同じ圧縮データを指すことはできません。

他のヒント

@Gregが言ったように、Zipはハードリンクをサポートしていません。

しかし、私が正しく理解していれば、あなたの目的は圧縮アーカイブのサイズを縮小することです。それでは、代替ソリューションを考えてみましょう。

簡単なテストを実行して、さまざまなアーカイブライブラリの圧縮比を確認します。 2つの同一のバイナリファイルを作成し、ZIP、BZ2、RAR、7Zを使用して圧縮しました。

  8641969  test.bin
  8641969  test2.bin

初めて1つのファイルのみが圧縮されました。 2回目のファイルが圧縮されました。

ジップ:

$zip -9 test1.zip test.bin
$zip -9 test2.zip test.bin test2.bin

 8636837  test1.zip
17273654  test2.zip 

BZIP2:

$export BZIP=--fast
$tar cjf test1.tbz test.bin 
$tar cjf test2.tbz test.bin test2.bin 

 8694997  test1.tbz
17389167  test2.tbz

7z:

$7z a -mx=9 test1.7z test.bin 
$7z a -mx=9 test2.7z test.bin test2.bin 

 8705285  test1.7z
 8707054  test2.7z

rar:

$rar a -m5 test1.rar test.bin
$rar a -m5 test2.rar test.bin test2.bin 

 8649970  test1.rar
17299916  test2.rar

結論:7Zだけが仕事をしているようです。アプリケーションで使用することを検討してください。

もちろん、ファイルを使用して環境でさらにテストを行う必要があります。また、オプションで再生して、どのレベルの圧縮レベルが最高の圧縮比/速度バランスを取得するかを確認できます。

タールアーカイブはハードリンクをサポートしています

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top