Welcome 微信登录

首页 / 操作系统 / Linux / shell脚本之对比不同目录的下的文件

让负责一部分代码的版本,担心公共目录下有人可能会稍微修改部分代码,因此把代码备份到自己的一个目录中,上传svn之前,如果发现公共目录的下的文件被修改,则找出变化部分,避免出现不可知的文件变化。使用diff命令可以很容易的比较文件之间的差异,但是,如果要负责的文件比较多的话,那么一个个的比较是比较麻烦的因此,想写一个脚本文件,让它帮我对比文件之间的差异,偷懒嘛,O(∩_∩)O哈哈哈~脚本内容如下:#!/bin/bash
# @file       for_diff.sh
# @author     ymm
# @brief        比较不同目录下指定文件目录的差异
# @date       2014/2/28 16:18:10
# @History
# 1、2014/2/28 16:18:10  author ymm    初步完成
path_src=~/work/ymm/omc_account
path_desc=/opt/opthb/src/cpp/hla/account/omc_account
#只比较备份文件中的.cpp .h 和makefile文件,如需比较其他文件,可以指定
files=$(ls $path_src/*.cpp $path_src/*.h $path_src/makefile)
#files=$(ls $path_src/*)
for file in $files
do
    filename=$(basename $file )
    file_desc=${path_desc}/${filename}
   
    diff ${file} ${file_desc} 1>/dev/null 2>&1 && result=0 || result=1
    if [ "$result" == 1 ];then
        echo "$filename is diff"
    fi
done用到的知识点:
1、通过basename可以通过文件的绝对路径获取文件名
2、1>/dev/null 2>&1 方法把输出重定向到“/dev/null”,也就是不输出
3、shell命令 && result=0 || result=1 通过变量来判断shell命令执行成功与否
需要注意的是:
使用“ls $path_src/*.cpp $path_src/*.h $path_src/makefile”命令指定了要比较的文件为源文件、头文件和makefile,如果希望对比目录的下的所有文件,不能使用“ls $path_src/” ,而要使用“ls $path_src/*”,比较不同,如下:[www.linuxidc.com@www.linuxidc.com shell]$ ls /account/work/ymm/shell/test/*
/account/work/ymm/shell/test/for.sh     /account/work/ymm/shell/test/run
/account/work/ymm/shell/test/for_diff.sh  /account/work/ymm/shell/test/while.sh
[www.linuxidc.com@www.linuxidc.com shell]$ ls /account/work/ymm/shell/test/
for.sh  for_diff.sh  run  while.sh可以看到,如果不加“*”的话,查看的文件都是不带路径的,这个时候再diff比较文件的话,比较的就是“path_src”目录下的文件,而是当前目录的了。希望大家注意。自己的小打小闹,但是希望对大家有所帮助!其实都是简单的操作,但是,我想着如果平常的一些很繁琐的事情都用shell脚本来实现的话,虽然不是一件多么有技术含量的事情,但我感觉这对于我自己来说,可以节省一些时间,而这样,我感觉就已经够了!努力学习进步ing!`tar备份时不显示目录结构Linux下串口调试工具xgcom安装相关资讯      Shell脚本 
  • 在shell脚本中使用函数  (今 11:53)
  • 使用shell批量生成数据整合式迁移  (03月29日)
  • shell脚本:监控MySQL服务是否正常  (11/19/2015 20:05:43)
  • Shell脚本 入门 —— 符号篇  (08月16日)
  • shell脚本中报错dirname:无效选项  (12/21/2015 19:12:37)
  • shell脚本:MySQL启动简易脚本  (11/19/2015 19:59:52)
本文评论 查看全部评论 (0)
表情: 姓名: 字数


评论声明
    版权所有©石家庄振强科技有限公司2024 冀ICP备08103738号-5 网站地图