- 论坛徽章:
- 0
|
20可用积分
同一台机器上,有2个目录,目录old和new,里面又有若干文件和子目录
要求:1.将双方目录一样(或者时间锉一致)的文件比较后输出到share目录,
2.将old目录存在或者修改过的文件比对new目录输出到update目录
3.new目录对比old目录删除或者修改的文件输出到del目录
最好能在这3个动作后加入日志输出,好象很麻烦,有人能指教一下吗.非常感谢
这是看到以前有一个高手写的,不过内容和我这个有点不一样.
#!/bin/sh
[ $# -lt 2 ] && echo "ERROR : TWO directories is requested ." && exit 1
([ ! -d $1 ] || [ ! -d $2 ]) && echo "Directory must be existed ." && exit 2
mkdir -p output_share output_diff
find $1 $2 -type f | while read line;
do
comp_file=$(sed "s/^$1/#$1/;s/^$2/$1/;s/#$1/$2/" <<< $line)
share_output=output_share/$(sed -r "s/^($1|$2)//" <<< $(dirname $line))
[ ! -f $comp_file ] && cp --parents $line output_diff || (mkdir -p $share_output && diff $line $comp_file > $share_output/$(basename $line).diff)
done
echo "Done !" && exit 0 |
最佳答案
查看完整内容
没看太明白。你删除了old/F目录下的world文件,new/F目录下是否有world呢?如果没有,那肯定就没处理了。我测试了一下似乎是没问题的。
|