我想编写一个unix脚本,其中:
source dir:/ test1 / jobs / def1,def2,def3 ....等等 目标目录:/ test2 / jobs / def1,def2,def3 ....等等
scenario1:我想比较源目标和目标目录中的jobs文件夹,它们与def1,def2,def3等文件完全相同。如果在目标中找不到任何文件,它应该捕获这种差异在日志文件中。
scenario2:现在完成文件级别检查后:
来源目录:/ test1 / jobs / def1,def2,def3,mam1,mam2,mam3,mam4,try1,try2,try3,cus1,cus2,cus3,kit1,kit2,kit3 ......等等< / p>
目标目录:/ test2 / jobs / def1,def2,def3,mam1,mam2,mam3,mam4,try1,try2,try3,cus1,cus2,cus3,kit1,kit2,kit3 ......等等< / p>
现在我需要编写一个脚本,我应该在运行时传递输入参数作为字符串,例如,如果我给'def'than脚本应该比较从def开始的文件内容仅从源到目标而不是所有其他。如果内容不匹配,应该在我的日志文件中捕获。
非常感谢任何帮助。提前致谢。 Ĵ
答案 0 :(得分:0)
您不需要脚本。您需要的是一个用于比较文件和/或目录的工具。您可以尝试Meld或Git。
例如,下面是一个如何使用Git完成此操作的示例:
$ cd test1
$ git init
$ git add .
$ git commit -m "Add source files"
$ git branch -M master source
$ cd ../test2
$ mv ../test1/.git .
$ git checkout -b target
$ git add .
$ git commit -m "Add target files"
这为您设置了一个包含“源”和“目标”文件的Git存储库。然后你可以像这样比较它们:
$ git diff source target # Compares everything
$ git diff source target jobs/def* # Compares only "def" directories