Madogiwa Blog

主に技術系の学習メモに使っていきます。

特定ディレクトリ以下の全ファイルのchecksum(MD5)を取得する方法MEMO

バージョンアップによるbuild結果の差分を見るときなど特定のディレクトリ内の全ファイルを md5でchecksumを取得して差分が出てるファイルを特定できると便利なのでやり方をメモ🗒

mac

ls -Fd $(find $FIND_PATH)で特定ディレクトリ以下のファイル + ディレクトリを取得し、 grep -v "/$"ディレクトリを除外、xargs md5でchecksumを取得します。

ファイル名 + checksum

FIND_PATH=$PWD
ls -Fd $(find $FIND_PATH) | grep -v "/$" | xargs md5

出力例

MD5 (/test/file1.txt) = b026324c6904b2a9cb4b88d6d61c81d1
MD5 (/test/file2.txt) = 26ab0db90d72e28ad0ba1e22ee510510

checksumのみ

checksumのみの場合は-qオプションを使うと楽です。

FIND_PATH=$PWD
ls -Fd $(find $FIND_PATH) | grep -v "/$" | xargs md5 -q

出力例

b026324c6904b2a9cb4b88d6d61c81d1
26ab0db90d72e28ad0ba1e22ee510510

ubuntu

基本的にはmacと同じ、ubuntsuの場合にはmd5sumを使う。

ファイル名 + checksum

ls -Fd $(find public/packs) | grep -v "/$" | xargs md5sum

checksumのみ

md5sumには-qオプションが無いのでawk '{ print $1 }'で空白区切りの最初の文字(md5 checksum)を取得する。

ls -Fd $(find public/packs) | grep -v "/$" | xargs md5sum | awk '{ print $1 }'

参考

qiita.com

uxmilk.jp

qiita.com

www.yamacoco.com