gzipアーカイブをディレクトリと比較しますか?

gzipアーカイブをディレクトリと比較しますか?

gzipで圧縮されたアーカイブを既存のディレクトリと比較する方法はありますか?

私はtarballからデータを抽出せずにこれを行うことができるようにしたいと思います。

答え1

tarball をディレクトリにマウントします。AVFS。次に、diff -r物理ディレクトリとtarballのインストールポイントで使用します。

mountavfs
diff -r ~/.avfs/path/to/foo.tar.gz\# real-directory

GNU/Hurdではこれに相当するのがtarfs

答え2

GNU tarにはdiffが組み込まれていることがわかりました。(-D):

$ #Create the archive and a difference:
$ echo one>file1;echo two>file2;tar -czf archive.tgz file*;echo changing>>file1
$ tar -dzf archive.tgz
file1: Size differs

使用しているtarにこの機能がない場合は、以下を試してください。

$ for F in `tar -tzf archive.tgz`;do tar -xzOf archive.tgz $F|diff --brief - $F;done
Files - and file1 differ

答え3

これは新しいツールです:http://diffscope.org/

既存のツール:http://tardiff.sourceforge.net/

関連情報