diff
简介
diff命令用于比较文件的差异,diff以逐行的方式,比较文本文件的异同处。如果指定要比较目录,则diff会比较目录中相同文件名的文件,但不会比较其中子目录。
用法
diff [参数] [文件或目录1] [文件或目录2]
参数
参数 | 说明 |
---|---|
-a或–text | diff预设只会逐行比较文本文件。 |
-b或–ignore-space-change | 不检查空格字符的不同。 |
-B或–ignore-blank-lines | 不检查空白行。 |
-c | 显示全部内文,并标出不同之处 |
-C<行数>或–context<行数> | 与执行"-c-<行数>"指令相同。 |
-d或–minimal | 使用不同的演算法,以较小的单位来做比较。 |
-D<巨集名称>或ifdef<巨集名称> | 此参数的输出格式可用于前置处理器巨集。 |
-e或–ed | 此参数的输出格式可用于ed的script文件 |
-f或-forward-ed | 输出的格式类似ed的script文件,但按照原来文件的顺序来显示不同处。 |
-H或–speed-large-files | 比较大文件时,可加快速度 |
-l<字符或字符串>或–ignore-matching-lines<字符或字符串> | 若两个文件在某几行有所不同,而这几行同时都包含了选项中指定的字符或字符串,则不显示这两个文件的差异。 |
-i或–ignore-case | 不检查大小写的不同 |
-l或–paginate | 将结果交由pr程序来分页 |
-n或–rcs | 将比较结果以RCS的格式来显示 |
-N或–new-file | 在比较目录时,若文件A仅出现在某个目录中,预设会显示 |
-p | 若比较的文件为C语言的程序码文件时,显示差异所在的函数名称 |
-P或–unidirectional-new-file | 与-N类似,但只有当第二个目录包含了一个第一个目录所没有的文件时,才会将这个文件与空白的文件做比较。 |
-q或–brief | 仅显示有无差异,不显示详细的信息 |
-r或–recursive | 比较子目录中的文件 |
-s或–report-identical-files | 若没有发现任何差异,仍然显示信息 |
-S<文件>或–starting-file<文件> | 在比较目录时,从指定的文件开始比较 |
-t或–expand-tabs | 在输出时,将tab字符展开 |
-T或–initial-tab | 在每行前面加上tab字符以便对齐 |
-u,-U<列数>或–unified=<列数> | 以合并的方式来显示文件内容的不同 |
-v或–version | 显示版本信息 |
-w或–ignore-all-space | 忽略全部的空格字符 |
W<宽度>或–width<宽度> | 在使用-y参数时,指定栏宽 |
-x<文件名或目录>或–exclude<文件名或目录> | 不比较选项中所指定的文件或目录 |
-X<文件>或–exclude-from<文件> | 可以将文件或目录类型存成文本文件,然后在=<文件>中指定此文本文件 |
-y或–side-by-side | 以并列的方式显示文件的异同之处 |
–help | 显示帮助 |
–left-column | 在使用-y参数时,若两个文件某一行内容相同,则仅在左侧的栏位显示该行内容 |
–suppress-common-lines | 在使用-y参数时,仅显示不同之处 |
实例
diff a.sh b.sh
find
简介
find 命令用来在指定目录下查找文件。任何位于参数之前的字符串都将被视为欲查找的目录名。如果使用该命令时,不设置任何参数,则 find 命令将在当前目录下查找子目录与文件。并且将查找到的子目录和文件全部进行显示
用法
find path -option [ -exec -ok command ] {} \ ;
参数
参数 | 说明 |
---|---|
-mount, -xdev | 只检查和指定目录在同一个文件系统下的文件,避免列出其它文件系统中的文件 |
-amin n | 在过去 n 分钟内被读取过 |
-anewer file | 比文件 file 更晚被读取过的文件 |
-atime n | 在过去n天内被读取过的文件 |
-cmin n | 在过去 n 分钟内被修改过 |
-cnewer file | 比文件 file 更新的文件 |
-ctime n | 在过去n天内被修改过的文件 |
-empty | 空的文件-gid n or -group name : gid 是 n 或是 group 名称是 name |
-path p | 路径名称符合 p 的文件 |
-name name | 文件名称符合 name 的文件 |
-size n | 文件大小 是 n 单位 |
-type c | 文件类型是 c 的文件 |
-i | 忽略大小写 |
-perm | 指定文件权限 |
实例
查找 /var/log 目录中更改时间在 7 日以前的普通文件,并在删除之前询问是否确定删除
find /var/log -type f -mtime +7 -ok rm {} \;
ln
简介
ln(英文全拼:link files)命令是一个非常重要命令,它的功能是为某一个文件在另外一个位置建立一个同步的链接。
当我们需要在不同的目录,用到相同的文件时,我们不需要在每一个需要的目录下都放一个必须相同的文件,我们只要在某个固定的目录,放上该文件,然后在 其它的目录下用ln命令链接(link)它就可以,不必重复的占用磁盘空间
用法
ln [参数][源文件或目录][目标文件或目录]
分类
Linux文件系统中,有所谓的链接(link),我们可以将其视为档案的别名,而链接又可分为两种 : 硬链接(hard link)与软链接(symbolic link),硬链接的意思是一个档案可以有多个名称,而软链接的方式则是产生一个特殊的档案,该档案的内容是指向另一个档案的位置。硬链接是存在同一个文件系统中,而软链接却可以跨越不同的文件系统。
不论是硬链接或软链接都不会将原本的档案复制一份,只会占用非常少量的磁碟空间
软链接:
1.软链接,以路径的形式存在。类似于Windows操作系统中的快捷方式
2.软链接可以 跨文件系统 ,硬链接不可以
3.软链接可以对一个不存在的文件名进行链接
4.软链接可以对目录进行链接
硬链接:
1.硬链接,以文件副本的形式存在。但不占用实际空间。
2.不允许给目录创建硬链接
3.硬链接只有在同一个文件系统中才能创建
实例
给文件a.sh创建软链接
ln -s a.sh /tmp/a.sh