`

在Linux下比较两个目录需要忽略某些文件时怎么做?

 
阅读更多

 

在Linux下如果要比较两个目录,可以使用diff命令,并且需要加上选项-r(递归)。

       -r     When comparing directories, recursively compare any subdirectories found.

 

另外还有两个常用的选项,-b (忽略空白)和 -B (忽略空行)

       -b     Ignore changes in amount of white space.
       -B     Ignore changes that just insert or delete blank lines.

如下例所示:

[root@s170 cjtj]# diff -r -b -B sch_admin 4sch_admin
              
Only in 4sch_admin: 1.txt
diff -r -b -B sch_admin/build/CVS/Root 4sch_admin/build/CVS/Root
1c1
< :pserver:coding@cvsbank:/CVSAPPS
---
> :pserver:zhy@218.23.142.44:12401/home/cvsroot
diff -r -b -B sch_admin/conf/CVS/Entries 4sch_admin/conf/CVS/Entries
1c1
< /struts-sch.xml/1.3/Fri May 18 07:31:05 2012//
---
> /struts-sch.xml/1.3/Fri May 18 14:39:35 2012//
。。。
。。。

因为我的目录中带有版本信息,CVS目录存在很大的区别,但是对实际的文件内容是没有意义的,因此我想在比较时忽略掉CVS目录。

       --exclude=pattern
              When comparing directories, ignore files and subdirectories whose basenames match pattern.

下面是加了 --exclude选项时的比较结果,看上去很清爽。

[root@s170 cjtj]# diff -r -b -B --exclude=CVS sch_admin 4sch_admin

Only in 4sch_admin: 1.txt
Binary files sch_admin/dist/sch-admin.jar and 4sch_admin/dist/sch-admin.jar differ
Only in 4sch_admin/dist: .#sch-admin.jar.1.10
Only in 4sch_admin/dist: .#sch-admin.jar.1.11
Only in 4sch_admin/dist: .#sch-admin.jar.1.12
Only in 4sch_admin/extra/zhaosheng: baoming.html.1
[root@s170 cjtj]# 


 

欲访问本文最新版,请移步:http://www.vktone.com/articles/diff-dirs-ignore-some-files-in-linux.html

 

更多关于Linux使用的文章请访问:http://www.vktone.com/linux.html

 

 

 

5
1
分享到:
评论
1 楼 xiaoooooo99 2013-01-11  
很受用,找了好久终于找到了

相关推荐

    Linux下patch的制作和应用

    使用 `-r` 选项递归比较目录中的文件,并生成补丁文件: ```bash [armlinux@lqmpatch]$ diff -urN old/ new/ &gt; all.diff ``` 这里假设 `old/` 和 `new/` 是包含多个文件的目录。 #### 步骤四:应用补丁 使用 `-p1...

    linux教程——很使用的那种

    linux中的文件(普通文件或设备文件等)都必须有挂在点,只有挂载到一个目录下才能访问,swap分区是不需要挂载点的,在分区的时候,将文件系统类型选为swap,挂载点自动会变为灰色。一般linux中的swap大小为内存的两倍。...

    Linux入门培训教程linux命令大全之diff命令详解借鉴.pdf

    如果指定比较的是目录的的时候,diff 命令会比较两个目录下名字相同的文本文件。列出不同的二进制文件、公共子目录和只在一个目录出现的文件。 Diff 命令有多种参数可以使用,如下所示: * -a 或 --text:diff ...

    linux日常运维练习题

    30. Rsync 同步数据时,如果目标文件比源文件还新,则忽略该文件,如何做? 可以使用 `rsync` 命令的 `--update` 选项,例如 `rsync -avz --update /dir1/ /dir2/`。 31. 想在 linux 命令行下访问某个网站,并且该...

    linux下IPV6服务配置

    在这个文件中,需要指定哪些接口应该发送路由器广告,并定义相应的前缀。以下是一个简单的示例配置: ```conf interface eth0 { AdvSendAdvert on; AdvOtherConfigFlag on; MinRtrAdvInterval 30; ...

    LINUX系统下mysql的大小写区分问题.docx

    例如,"MyDB"和"Mydb"会被视为两个不同的数据库,而"Users"和"users"则被视为同一个表。 为了改变这种行为,你可以通过编辑配置文件来调整MySQL的行为。具体操作是在`/etc/my.cnf`配置文件中找到`[mysqld]`段,然后...

    Linux_SVN客户端安装包和配置指导

    Linux下的Subversion(SVN)客户端是用于版本控制系统的一个强大工具,它允许用户协同工作,跟踪文件和目录的更改历史。本指南将详细介绍如何在Linux系统上安装和配置SVN客户端,以帮助您更好地理解和使用这个强大的...

    每天一个linux命令

    Linux 的管道符号是 `|`,它将两个命令隔开,将左边命令的执行结果传递给右边的命令。 实例: 1. `ls -al | grep java` 先执行 `ls -al` 命令,然后将结果传递给 `grep` 命令,查找包含 `java` 的文件或目录。 2. ...

    SVN usage on Linux

    使用`svn diff`命令可以查看两个版本之间的差异,或者查看本地文件与SVN仓库中的差异: ```bash svn diff [-r m:n] 本地文件 ``` 例如,查看`main.c`从版本1到版本10之间的差异: ```bash svn diff -r 1:10 main....

    Linux Windows下 C_C++开发的差异

    在不同的系统下,由于编译器的不同,对变量作用域的实现机制也有所不同,这里以 Windows 下的 VC 和 Solaris 下的 CC 这两个编译器为例做一个简单的比较说明。 在 C++ 的开发过程中,我们经常会有这样的用法: for...

    linux.chm文档

    chattr +d file1 在进行文件系统备份时,dump程序将忽略这个文件 chattr +i file1 设置成不可变的文件,不能被删除、修改、重命名或者链接 chattr +s file1 允许一个文件被安全地删除 chattr +S file1 一旦应用...

    LINUX安装与配置简明手册

    本书详细介绍如何在个人电脑上安装配置Caldera和Red Hat两种发行版本的Linux操作系统,并能帮助用户解决安装和配置过程中出现的各种问题。本书既能指导你进行基本的安装步骤,也能指导你定制独具特色的Linux 操作...

    Linux命令学习手册-patch命令

    我们想要生成一个补丁文件`prj1.patch`,用于记录这两个目录之间的差异。 首先,我们使用`ls -p`命令列出两个目录的内容,以便了解它们的结构: ```bash $ ls -p prj0 $ ls -p prj1 ``` 然后,使用`diff`命令生成...

    linux中的signal机制

    `kill`函数接受两个参数:目标进程的PID(进程ID)和要发送的信号号。除了通过`kill`函数外,还可以通过`raise`函数向调用进程本身发送信号。 ### 信号的捕获与处理 为了捕获并处理信号,Linux提供了`signal`和`...

    4-5-2 链接文件.pdf

    Linux系统中文件链接分为硬链接和符号链接(软链接),它们在文件系统中扮演着不同的角色。了解这两种链接的区别对于更好地管理Linux系统下的文件和目录非常重要。 首先,我们来讨论硬链接。硬链接的创建是通过创建...

    linux下svn服务器安装配置及客户端安装说明

    5. **添加环境变量**:编辑`/etc/profile`,在文件末尾添加:`SVNPATH=$PATH:/usr/local/svn/bin` 并导出变量:`export SVNPATH`。 6. **验证安装**:执行`svnserve --version`,如果显示出版本信息,则表示安装成功...

    LINUX与UNIX SHELL编程指南(很全)

    10.2.2 使用sed在文件中查询文本的方式 90 10.2.3 基本sed编辑命令 90 10.3 sed和正则表达式 91 10.4 基本sed编程举例 91 10.4.1 使用p(rint)显示行 91 10.4.2 打印范围 91 10.4.3 打印模式 92 10.4.4 使用模式和...

    嵌入式linux启动运行的inittab简介

    嵌入式 Linux 系统下的启动配置文件与普通 PC Linux 启动配置文件不同,嵌入式系统下的 Linux 启动过程可以分为两个阶段:第一个阶段是在 bootloader 中制定各种要求传给 Linux 内核的参数,制作 ramdisk 或 ramfs ...

Global site tag (gtag.js) - Google Analytics