>>611 foo=/1/a; bar=/2/a として、 前者 $foo/A, $foo/B, $bar/B: 移動せず $bar/C -> $foo/C 後者 $foo/A,$foo/B: 移動せず $bar/B -> $foo/B-1 $bar/C -> $foo/C というふうに処理するってこと? だったら bourne shellで 前者 for from in $foo/*; do name=`expr //$from : '.*/¥(.*¥)'`; if [ ! -e $bar/$name ]; then mv $from $bar/$name; fi; done
後者 for from in $foo/*; do name=`expr //$from : '.*/¥(.*¥)'`; suffix=; if [ -e $foo/$name ]; then suffix=-1; while [ -e $foo/${name}${suffix} ]; do suffix=`expr $suffix - 1`; done; fi; mv $bar/$name $foo/${name}${suffix}; done
てのはどうかな(全体で試してはいないけど)。あとは for from_to in /1/a:/2/a /1/b /2/b; do echo $from_to | while IFS=: read foo bar; do 上のコード; done; done で外をくくってやれば完成かな? CRCを計算する一般的なUNIXコマンドってあるの?