バージョンアップによる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 }'