2

同じソフトウェアパッケージの異なるバージョンである2つのディレクトリがあります。2つの間で変更されたすべてのファイル/ディレクトリを一覧表示し、それらの違いを新しいディレクトリにコピーしたいと思います。

md5sumでさまざまなスクリプトを試しましたがdiff -Nurq、探している結果を得ることができませんでした。

何かお勧めはありますか?

編集

私はもともとmd5sumsを試してみましたが、特に新しいファイルが見つからない場合はうまくいかなかったようです。

次に、次のようなループを試しました。

for x in `diff -Nurq ./dir1/ ./dir2/ | awk -F" " '{print $4}'`
do 
  mkdir -vp ./dir_1_2_upgrade/$x; 
  cp $x ./dir_1_2_upgrade/$x
done

しかし、それは結局、たくさんのディレクトリを作成し、ファイルを作成しませんでした。

4

1 に答える 1

1
source=SOME_DIR
dest=OTHER_DIR

# TODO: rewrite as awk script
delta=`diff -ur $source $dest`
deleted=`echo "$delta" | grep "^Only in ${source}:" | sed "s/^Only in ${source}: //"`
added=`echo "$delta"   | grep "^Only in ${dest}:"   | sed "s/^Only in ${dest}: //"`
changed=`echo "$delta" | grep '^\+\+\+' | awk '{print $2}'`

echo $deleted
echo $added
echo $changed

ファイル名にスペースが含まれていない場合に機能します。これをできるだけ一般的にしたい場合は、などのプログラムのソースを確認してくださいgit-diff

于 2011-05-17T18:43:58.880 に答える