ディレクトリの内容を比較する簡単な方法を探しています。ディレクトリ全体のmd5sum(または同等のチェックサム)を実行できますか?
Ubuntu Linuxを使用する
ディレクトリの内容を比較する簡単な方法を探しています。ディレクトリ全体のmd5sum(または同等のチェックサム)を実行できますか?
Ubuntu Linuxを使用する
回答:
確かに- md5sum directory/*
少し柔軟なものが必要な場合(ディレクトリの再帰やハッシュの比較など)、md5deepを試してください。
apt-get install md5deep
md5deep -r directory
ディレクトリ構造を比較するには、比較するハッシュのリストを指定できます。
md5deep -r -s /directory1 > dir1hashes
md5deep -r -X dir1hashes /directory2
これにより、directory1に一致しないdirectory2内のすべてのファイルが出力されます。
これにより、directory1から削除されたファイルや、directory2に追加されたファイルは表示されません。
-j0
whichを使用してマルチスレッドを無効にします(manページを参照)。
md5deep
でsudo apt-get install md5deep
のUbuntu 16.04
私はmanページを読みしようとしたとき、それはmd5deepなし手動入力>と言われます
2つのディレクトリの違い(もしあれば)を確認するには、rsyncが適しています。
rsync --archive --dry-run --checksum --verbose /source/directory/ /destination/directory
これにより、異なるファイルがリストされます。
diff -qr /source/directory/ /destination/directory/
異なるファイルも表示されます。
username@hostname:/destination/directory
CFVのアプリケーションは、MD5チェックサムをチェックして、作成することができるだけでなく、それはまた、CRC32、SHA1、急流、パー、PAR2を行うことができ、非常に便利です。
現在のディレクトリ内のすべてのファイルに対してCRC32チェックサムファイルを作成するには:
cfv -C
現在のディレクトリ内のすべてのファイルに対してMD5チェックサムファイルを作成するには:
cfv -C -t md5 -f "現在のディレクトリ.md5sums"
サブディレクトリごとに個別のチェックサムファイルを作成するには:
cfv -C -r
すべてのサブディレクトリ内のファイルを含む「スーパー」チェックサムファイルを作成するには:
cfv -C -rr
このaskubuntuの回答で説明されているように、私はhashdeepを使用しました :コピーされたファイルの正確さを確認します:
チェックサムを計算するには:
$ cd <directory1>
$ hashdeep -rlc md5 . > ~/hashOutput.txt
違いを確認してリストするには:
$ cd <directory2>
$ hashdeep -ravvl -k ~/hashOutput.txt .
hashdeep: Audit passed
Input files examined: 0
Known files expecting: 0
Files matched: 13770
Files partially matched: 0
Files moved: 0
New files found: 0
Known files not found: 0
これには、名前の変更(移動)、追加、削除されたファイルが表示されるという点でmd5deepよりも利点があります。 to / validating-copy-results-using-md5deep。
すべての単一ファイルのMD5合計を作成し、これらのチェックサムをアルファベット順に並べて、それらを(改行の有無にかかわらず)配置できます。MD5は暗号化されているため、ハッシュのハッシュでも問題なく機能するはずです。
物事には一定の順序があるはずです。そうでないと、等しいdirsに対して異なる結果が得られます。
また、1つのディレクトリにファイルを追加すると、それが単なるファイルであっても、結果が完全に変わることを考慮する必要が.directory
あり.DS_Store
ます。
特定のケースとして、directory1からdirectory2にいくつかのファイルをコピーし、md5比較を使用してコピーが成功したことを確認したいとしましょう。
最初。directory1にcdして、次を入力します。
find -type f -exec md5sum "{}" \; > ~/Desktop/md5sum.txt
これにより、directory1の各ファイルのmd5合計を含む参照ファイルが作成されます。これが完了したら、ディレクトリ2にcdして、次のように入力するだけです。
md5sum -c ~/Desktop/md5sum.txt
プログラムmd5sumは、md5sum.txtファイルから各パスを取得し、宛先フォルダー内のそのファイルのmd5sumを計算し、それをファイルに保存されている合計と比較します。
プロセスが完了すると、「そのため非常に多くのファイルが一致しませんでした」などの概要が表示されます。
大量のファイルを含むバックアップ/ミラーの整合性を検証する必要があり、最終的にMassHashと呼ばれるコマンドラインプログラムを作成しました。Pythonで書かれています。GTK +ランチャーも利用できます。あなたはそれをチェックアウトしたいかもしれません...