答えて
unzip -l
は、zipファイルの内容をリストします。ここに述べたように、あなたはその後、通常の方法でdiff
にそれを渡すことができます。https://askubuntu.com/questions/229447/how-do-i-diff-the-output-of-two-commands
したがって、たとえば次の2つのzipファイルがあった場合:
foo.zip
bar.zip
をあなたはサイドバイサイドの差分を行うにはdiff -y <(unzip -l foo.zip) <(unzip -l bar.zip)
を実行することができ2つのファイルの内容の
希望に役立ちます!
'--suppress-common-lines'フラグを追加すると、異なる行だけを表示することができます。 ' diff -y <(unzip -l foo.zip)<(unzip -l bar。私は '関数zipdiff(){差分-y <(解凍-l $ 1)<(解凍-l $ 2)--suppress共通ラインになってしまったジッパー)--suppress-コモンlines' – KostasX
。 }}、それは私がしようとしていたことに対して完璧に機能しました。 –
diff
(のように、のように)2つのファイルを抽出したい場合は、それらを抽出する必要があります。 unzip -p
抽出ファイルP IPE(標準出力)へ:
# define a little bash function
function zipdiff() { diff -u <(unzip -p $1 $2) <(unzip -p $3 $4); }
# test it: create a.zip and b.zip, each with a different file.txt
echo hello >file.txt; zip a.zip file.txt
echo world >file.txt; zip b.zip file.txt
zipdiff a.zip file.txt b.zip file.txt
--- /dev/fd/63 2016-02-23 18:18:09.000000000 +0100
+++ /dev/fd/62 2016-02-23 18:18:09.000000000 +0100
@@ -1 +1 @@
-hello
+world
注:あなたはこのような何か(何のエラーチェックや)を行うことができる2つのジッパーには、2つのファイルの差分を見るために
。
あなただけのファイルは、あなたが使用してチェックサムを調べることができます異なっているかどうかを知りたい場合は
unzip -v -l zipfile [file_to_inspect]
注:-v
は、あなたの上記の例では冗長と-l
リストの内容)
unzip -v -l a.zip
Archive: a.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
6 Stored 6 0% 2016-02-23 18:23 363a3020 file.txt
-------- ------- --- -------
6 6 0% 1 file
unzip -v -l b.zip
Archive: b.zip
Length Method Size Cmpr Date Time CRC-32 Name
-------- ------ ------- ---- ---------- ----- -------- ----
6 Stored 6 0% 2016-02-23 18:23 dd3861a8 file.txt
-------- ------- --- -------
6 6 0% 1 file
を意味し、チェックサム(CRC-32)が異なることが分かります。
また、このプロジェクトに興味があるかもしれません: https://github.com/nhnb/zipdiff
あなただけのファイルが等しい場合は、アーカイブのローカルヘッダフィールド/中央ディレクトリに格納されているCRC32チェックサムを、比較することができますチェックする必要がある場合。
これまでの回答を組み合わせると、次のbash関数はzipファイルのファイルリストを比較します。リストには冗長出力(unzip -v
)が含まれているため、チェックサムを比較することができます。出力はファイル名(sort -k8
)でソートされ、並列比較が可能になり、diff出力が展開され(W200
)、ファイル名が左右に見えるようになります。
function zipdiff() { diff -W200 -y <(unzip -vql $1 | sort -k8) <(unzip -vql $2 | sort -k8); }
これは、任意のコンソールから使用するためにあなたの~/.bashrc
ファイルに追加することができます。 zipdiff a.zip b.zip
と併用できます。出力を小さいものに配管するか、ファイルにリダイレクトすることは、大規模なzipファイルに役立ちます。
- 1. ディスクに展開せずにZIPからファイルを読み取る
- 2. ZIPファイルを別のZIP形式に直接展開するZIP
- 3. ZIPファイルを展開せずに、圧縮 "zip"ファイルからnode.jsプロジェクトを実行できますか?
- 4. 展開せずに翻訳yamlファイルを更新するには?
- 5. 新しい場所に展開せずにC#で.zipファイルを解凍する方法
- 6. DocumentDB SQL:オブジェクトを展開せずにSELECT?
- 7. mavenリモートサーバに展開するzipファイルを追加
- 8. Maven経由でNexusリポジトリにzipファイルを展開する方法
- 9. Pythonでzipファイル内のファイルをメモリに渡さずに
- 10. Powershellで解凍(解凍)せずに* .zipファイル内のファイルを置換する
- 11. ローカルに保存せずにzipファイル内にPDFを保存する方法
- 12. AWS S3のzip内のファイルをダウンロードせずに数えるには?
- 13. PHP - サーバーに保存せずにzipファイルの内容を読み取る
- 14. サービスを再起動せずに簡単に.jarファイルを展開する
- 15. 展開せずにASP.NETを公開する
- 16. 内のcsvファイル名を知らずにR内のzipファイルを読み取る
- 17. 最後のzipファイルに失敗したPowershellでzipファイルを展開しています。
- 18. TrueZip - 内部JAR/ZIPファイルをディレクトリとして展開せずに解凍するにはどうすればいいですか?
- 19. System.IO.Packagingを使用してC#でzipファイルを展開する
- 20. python-webkit WebViewでzipアーカイブ内の大きなファイルにアクセスし、抽出せずに
- 21. Apache Tomcat 7にzipファイルをどこに展開してダウンロードできますか?
- 22. バナー画像を展開せずにドロップメニューをオーバーフローさせる
- 23. jgitflow-mavenpluginにブランチを展開せずに作業するには
- 24. ページを展開せずにスパンの高さにするには?
- 25. 目的C - ジップを解凍せずにzipファイルにアクセスする
- 26. .rarから.zipにファイルを転送せずに転送する
- 27. SharePoint上のZIPファイルの内容をダウンロードせずに回収する
- 28. タプルを展開せずにリストにタプルを追加
- 29. ファイル名が長すぎるため、ZIPを展開できません
- 30. IIS関与を必要とせずに、msbuild zipパッケージをローカルまたはリモートで展開する方法
2つのファイルが異なるかどうかを知りたいのか、それともビジュアル差分を取得するだけですか? – gollum