地方エンジニアの学習日記

興味ある技術の雑なメモだったりを書いてくブログ。たまに日記とガジェット紹介。

ディレクトリAには存在するけどディレクトリBにはいないファイルを知りたい

久々にnginxのソースを読もうとコードが置いてあるパスに移動したらどれいじったのか全く分からなくなっていた。wgetとかでとってきた履歴だけはあったので同じコマンド打ってどの辺違いあるんだっけを知りたくてシェルスクリプトを書いた。差分を見たいディレクトリを引数にとってディレクトリAにはあるファイルだがディレクトリBにはないファイルを抽出するのといじったファイルを抽出するのを一緒に行うやつ。

#!/bin/bash

d1=${1}
d2=${2}

for file in $(cd ${d1} && find . -type f); do
    cd ${d2}
    if [[ ! -e ${file} ]]; then
        echo ${file}
    fi
    if [[ -e ${file} ]]; then
        if [[ $(diff <(md5sum ../${d1}/${file}|awk '{print $1}') <(md5sum ${file}|awk '{print $1}')) ]]; then
            echo ${file}
        fi
    fi
    cd ..
done

書いたはいいけどいじるなら差分わかるようにgit管理しておこう...となった。git最高...