
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/