パソコンにおけるソフト・アプリを利用する上で、日々の利用によって、どのファイルが更新されるのか? 同じくバージョンアップすると、どのファイルが更新されたのか、簡単な操作で調べることを目的とした、bashスクリプト「 MakeAfile4Md5.sh Version:2.0 」を公開します。 任意の過去の履歴全ファイルに対して比較可能!



z  My Special Data

フォルダー名初期値:「z  My Special Data」だけに、ファイルを保存します。 邪魔になったら、フォルダー名初期値:「z  My Special Data」を全削除すれば良いです。

基礎データーの構築

ソフトなどをインストールしたなら、インストール先のフォルダー(ディレクトリー)に、筆者は *1 無料ソフトCygwinの、Cygwin64 Terminal(以後cygwin端末と称す)を立ち上げて、接続します。 (筆者は*4 Windows Subsystem for Linuxを使用した経験はありませんが、Live Linuxで機能しますので同じでしょうか? それともビックリする癖がありますか?)
ここでは例として、フォルダー: D:\Program Files\Windows Mail を処理します。 基礎データーは近い将来、比較を行いたいと思われる時に随時作成します。 何らかのダウンロードが実行される直前が良いかも知れません。 以降で解説する「 -d 」を付加しても無視しても構いません。 ようするに、比較したい基礎データーが無ければ比較は不可能です

  1. cygwin端末を起動します。 操作し易いように枠で右クリックし、オプションをクリックして、言語(日本語の場合: ja_JP + UTF-8)と文字セットを確認し、文字サイズを大胆にセットします。

  2. cd "D:\Program Files\Windows Mail" Enter
    処理したいフォルダーをWindowsエクスプローラーで接続し、アドレス部をそのままコピーして、cygwin端末でダブルクウォーテーション文字で囲んで、 ””(ダブルクウォーテーション)の内側に、ペーストする。 cygwin端末でのペーストは:「SHIFT + INS」です。
  3. bash ~/MakeAfile4Md5.sh Enter
    筆者はセキュリティーを考慮して、MakeAfile4Md5.sh を Cygwin のユーザーホームディレクトリーに保存しています。 筆者はセキュリティーを考慮して、初期値のまま、パーミッションを特に与えません。 長たらしい名前を打ち込むのはストレスの素です。 命名した作者を恨みます? 先頭1文字か2文字を入力して、TABキーを押します。 自動的に探してくれます。 候補が複数ある場合は、次の1文字か2文字を入力して、TABキーを押します。 また、cygwin端末内では、上矢印で履歴を呼び出し、左矢印で移動してコマンドを編集できます。
  4. Windows側のセキュリティーによって、フォルダーを自動作成できない場合:
    初期値:「 z  My Special Data 」を、直下と、直上に手動で作成しましょう。 (zに空白2文字が続きます!) それぞれのフォルダーを右クリックし、プロパティー --> セキュリティー --> 「編集(E)...」 --> Users (PC NAME) --> 「フルコントロール」 にします。

z  My Special Data

自動的に3つのファイルが生成されます。

ファイル名から、2022年6月24日午前6時41分に処理したことが分かります。

履歴に対して比較する

過去の基礎データーと比較する場合: ここでは例として、 Windows Mail - 202206240641 を基準に比較します。

  1. cygwin端末を起動します。
  2. cd "D:\Program Files\Windows Mail" Enter
    エクスプローラーで接続し、アドレス部でコピーして、cygwin端末でダブルクウォーテーション文字で囲んで、 ””(ダブルクウォーテーション)の中に、ペーストする。 cygwin端末でのペーストは:「SHIFT + INS」です。
  3. bash ~/MakeAfile4Md5.sh -d 202206240641 Enter

DIFF SAME

自動的に5つのファイルが追加されます。

  1. DIFF 202206240641 202206240722.txt
    -d で指定したデーターに対する異なるファイル群が保存されています。 例における比較対象は: 202206240722 です。 各ファイルの*2 MD5ハッシュ比較データーで判断しており、1ビットでも異なればファイル名が保存されます。 *5 diff形式で表現しています。
  2. SAME 202206240641 202206240722.txt
    -d で指定したデーターに対する同じファイル群が保存されています。 例における比較対象は: 202206240722 です。 各ファイルのMD5ハッシュ比較データーで判断します。

SAME 202206240641 202206240722.txt

SAME文字から続くファイルは、*2 MD5ハッシュ値ベースで、何ら変更の無いファイル群です。

この例では、ファイル: DIFF 202206240641 202206240722.txt は、ゼロ(0)サイズです。

開発の歴史と効能

当初、「あるフォルダー下の全てのレギュラー・ファイル(通常のファイル)に対して、1つの*2 MD5チェック用ファイルを残したい!」と、言うものでした。 手動で実行すると、ファイル名を自らが指定する必要があります。 手動で実行すると、保存先を自らが決める必要があります。 それらを自動化しようと考えます。 後から、どれだけ大量のファイル数であろうと、MD5検査が可能です。 HDDだろうと、SSDだろうと、Windowsのフリーズなどによって、過失によって、重要なファイルが壊れたかも知れません。 ファイルが壊れていないと言う確信を得たいなら、MD5検査すれば良い。

  1. cygwin端末を起動します。
  2. cd "D:\Program Files\Windows Mail" Enter
    エクスプローラーで接続し、アドレス部でコピーして、cygwin端末でダブルクウォーテーション文字で囲んで、 ””(ダブルクウォーテーション)の中に、ペーストする。 cygwin端末でのペーストは:「SHIFT + INS」です。
  3. LANG=C Enter
  4. md5sum -c z\ \ My\ Special\ Data/Windows\ Mail\ -\ 202206240641.md5 | fgrep -v " OK" Enter
    または、
    md5sum -c "z  My Special Data/Windows Mail - 202206240641.md5" | fgrep -v " OK" Enter
    または、
    md5sum -c ../z\ \ My\ Special\ Data/Windows\ Mail\ -\ 202206240641.md5 | fgrep -v " OK" Enter
    または、
    md5sum -c "../z  My Special Data/Windows Mail - 202206240641.md5" | fgrep -v " OK" Enter
何も表示しなければ、全てのファイルが*2 MD5ハッシュ値レベルで、作成した当初と何ら変化せず、1ビットレベルで全く同じである」と言えます。 テキストデーターだけでなく、画像、動画、プログラム、様々なレギュラー・ファイルを検査可能です!
そして、次に考えたアイデアは:「折角だから、比較して違うファイルをレポートしたいし、逆に。同じファイルをレポートしたい」と考えました。 違う場合:削除されたのか、追加されたのか、それとも置換されたのか。 それを表現するのに、*5 diff形式を採用しました。

ダウンロード

  • CLICK!
MakeAfile4Md5.sh のソースはここです!

通常のファイルであり、文字だけの*3 Bashスクリプト1ファイルが納められたzip圧縮ファイルです。 Ujiki.oO のブログ記事からでないとダウンロード不可能です。 他の偽サイトからのダウンロードは不能となります。 つまり、 Ujiki.oO のブログ記事以外から配布を受けた場合は、何らかの危険性があるやも知れませんので、その様な疑いがある場合は、解凍しないで破棄するべきです。 仕様の詳細は、下段の「ソースはここです!」を参照願います。この *3 Bashスクリプト: MakeAfile4Md5.sh は、一過性であって、決して常駐しません。 タイマーも起動しません。 通信も行いません!

Windowsログインユーザー名

  1. あなたのWindowsログイン・ユーザー名が、ここでは例として:「 user 」だと仮定します。
  2. Cygwinのインストール先が、ここでは例として:「 d:\cygwin64 」だと仮定します。
  3. Cygwinで言うところの、ホーム・ディレクトリーとは、以下になります。
    d:\cygwin64\home\user
  4. 解凍したファイル:「 MakeAfile4Md5.sh 」を、Cygwinで言うところの、ホーム・ディレクトリーに保存します。
  5. bash ~/MakeAfile4Md5.sh Enter
    パソコン上のあらゆるフォルダーで実行可能です。 初期値:フォルダー名「 z  My Special Data 」は、直下と、直上に自動的に作成を試みます。 作成できない場合は、手動で作成し、フォルダー名「 z  My Special Data 」のセキュリティを編集します。
  6. export LANG=C Enter
    処理する前に実行すれば、結果はASCII(英語)で保存されます。

記事の改訂の告知について

DISQUSコメント案内します。

DISQUSコメントにログインし、DISQUSコメント枠の一番下段の左端のメール・シンボルをクリックすれば、DISQUSコメントがあれば自動的にメールで知らせてくれます。 再度クリックすれば、メール通知を停止できます。 記事末尾のDISQUSコメントの表示が小さくてスレッドのデザインが狭過ぎると思うなら、DISQUSコメント本尊に接続_してみてください。


サポートが必要ですか?


Support AIt's free and fastSupport BIt's free and fastSupport CIt's free and fast

「無料サポート」に興味があれば
上の丸ボタンをクリック願います。
サーバーから9kbを受信しますのでお待ち願います。


※ 記事本文は別サーバーから JavaScriptファイルとして配信しており、配信元のサーバーにおける JavaScriptファイル(YUICOMPRESSOR済み)も、実際にあなたのブログが受信する gzip圧縮済みの JavaScriptファイルも、30日間のキャッシュ流用を定義していますので、特にご質問の前にブラウザーのキャッシュを削除してから、再度のご訪問と閲覧をお願い致します。
※ DISQUSについては別管理ですので、毎回、最新のDISQUSを表示できています。 但し、ご自分のDISQUSコメントを編集した直後に編集後の内容に至らない場合がありますが、DISQUS表示の上部にある「あなたの言語でDISQUSメニューを再表示する!」をクリックしますと最新の状況を表示致します。 宜しくご理解願います。
※ どれだけ待ってもDISQUSが表示されない場合は「広告ブロック」機能を切ってみて下さい。
Google Translator.

良いブログと利用できないブログ


  • CLICK!